React 語法擴展

useReducer鉤子函數

在這里插入圖片描述

不同action類型返回不同處理行為

在這里插入圖片描述

useState()函數返回解構為兩個值 state當前狀態 dispatch修改狀態函數
在這里插入圖片描述

dispatch()函數參數為一個actuon對象 如 :

在這里插入圖片描述

樣例:
在這里插入圖片描述

import { useReducer } from 'react';
import './App.css';// 定義一個Reducer函數 根據不同的action進行不同的狀態修改 function reducer(state,action){switch(action.type){case `INC`:return state+1case `DEC`:return state-1 default:return state}
}// 調用useReducer函數將reducer函數作為參數并設定初始狀態function App() {const [state,dispatch] = useReducer(reducer,0)return (<div className="App">{state}<button onClick={()=>{dispatch({type:`INC`})}}>+</button><button onClick={()=>{dispatch({type:`DEC`})}}>-</button></div>);
}export default App;

額外傳遞參數 、

在這里插入圖片描述

import { useReducer } from 'react';
import './App.css';// 定義一個Reducer函數 根據不同的action進行不同的狀態修改 function reducer(state,action){switch(action.type){case `INC`:return state+1case `DEC`:return state-1 case `SET`:return action.payloaddefault:return state}
}// 調用useReducer函數將reducer函數作為參數并設定初始狀態function App() {const [state,dispatch] = useReducer(reducer,0)return (<div className="App">{state}<button onClick={()=>{dispatch({type:`INC`})}}>+</button><button onClick={()=>{dispatch({type:`DEC`})}}>-</button><button onClick={()=>{dispatch({type:`SET`,payload:9527})}}>更新</button></div>);
}export default App;

流程

在這里插入圖片描述
1.dispatch函數接收到action對象,根據不同的action對象觸發reduce函數
2.reducer管理的state變化,重新渲染ui

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/79412.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/79412.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/79412.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MCP協議與Dify集成教程

一、MCP協議概述 MCP&#xff08;Model Control Protocol&#xff09;是一種新興的開放協議&#xff0c;為大型語言模型&#xff08;LLM&#xff09;與外部應用之間構建了雙向通信通道。它就像是AI的"USB-C"接口&#xff0c;幫助模型發現、理解并安全調用各種外部工…

學習springboot-條件化配置@Conditional(條件注解)

前言 在Spring Boot中&#xff0c;Conditional 注解及其相關注解是用于條件化配置的重要工具。它們允許開發者根據特定條件決定是否加載某個Bean或配置類。 注意&#xff1a;Conditional 相關注解&#xff0c;通常和Bean搭配使用 學習springboot-Bean管理&#xff08;Bean 注…

2025年- H18-Lc126-54.螺旋矩陣(矩陣)---java版

1.題目描述 2.思路* 思路1&#xff1a; 補充2&#xff1a; directions[1][0] // 表示“下”這個方向的行增量&#xff08;1&#xff09; directions[1][1] // 表示“下”這個方向的列增量&#xff08;0&#xff09; int[][] directions {{0, 1}, {1, 0}, {0, -1}, {-…

微信小程序連續多個特殊字符自動換行解決方法

效果圖 .wxml <view class"container"><text>沒轉換{{text}}</text><view style"height: 60rpx;" /><text>轉換后{{convert}}</text> </view>.js Page({data: {text:&#xff01;&#xff01;&#xff01;&am…

編程速遞-RAD Studio 12.3 Athens四月補丁:關注軟件性能的開發者,安裝此補丁十分必要

2025年4月22日&#xff0c;Embarcadero發布了針對RAD Studio 12.3、Delphi 12.3以及CBuilder 12.3的四月補丁。此更新旨在提升這些產品的質量&#xff0c;特別關注于Delphi編譯器、C 64位現代工具鏈、RAD Studio 64位IDE及其調試器、VCL庫和其他RAD Studio特性。強烈建議所有使…

Linux 進程基礎(二):操作系統

目錄 一、什么是操作系統&#xff1a;用戶和電腦之間的「翻譯官」&#x1f310; OS 的層狀結構&#x1f9e9; 案例解析&#xff1a;雙擊鼠標的「跨層之旅」 二、操作系統的必要性探究&#xff1a;缺乏操作系統的環境面臨的挑戰剖析&#x1f511; OS 的「管理者」屬性&#xff1…

第 11 屆藍橋杯 C++ 青少組中 / 高級組省賽 2020 年真題,選擇題詳細解釋

一、選擇題 第 2 題 在二維數組按行優先存儲的情況下&#xff0c;元素 a[i][j] 前的元素個數計算如下&#xff1a; 1. **前面的完整行**&#xff1a;共有 i 行&#xff0c;每行 n 個元素&#xff0c;總計 i * n 個元素。 2. **當前行的前面元素**&#xff1a;在行內&#x…

1??7??three.js_OrbitControls相機控制器

17、相機軌道控制器 3D虛擬工廠在線體驗相機軌道控制器OrbitControls 它是 Three.js 中最常用的交互控制器之一,專門用于通過鼠標/觸摸控制相機圍繞一個目標點(target)旋轉、縮放和平移。import {OrbitControls } from three/addons/controls/OrbitControls.js; const cont…

以下是在 Ubuntu 上的幾款PDF 閱讀器,涵蓋輕量級、功能豐富和特色工具:

默認工具&#xff1a;Evince&#xff08;GNOME 文檔查看器&#xff09; 特點&#xff1a;Ubuntu 預裝&#xff0c;輕量快速&#xff0c;支持基本標注和書簽。 安裝&#xff1a;已預裝&#xff0c;或手動安裝&#xff1a; sudo apt install evince功能全面&#xff1a;Okular&…

基于用戶場景的汽車行駛工況構建:數據驅動下的能耗優化革命

行業現狀&#xff1a;標準工況與用戶場景的割裂 全球汽車行業普遍采用WLTC工況進行能耗測試&#xff0c;但其與真實道路場景差異顯著。據研究&#xff0c;WLTC工況下車輛能耗數據比實際道路低10%-30%&#xff0c;導致用戶對續航虛標投訴激增&#xff08;數據來源&#xff1a;東…

chili3d調試10 網頁元素css node deepwiki 生成圓柱體 生成零件圖片

.input是input的外框&#xff0c;.input input是input的內框 沙雕 全部input都換成textarea了 自己的方法用接口定義&#xff0c;把自己的方法pub出去&#xff0c;定義在內部拉出去只是取個值 這其實是mainwindow端pub回來的 窗口pub端把數據pub回 mainwindow端讓mainwindow端…

Redis 啟用 TLS 加密傳輸配置

Redis 啟用 TLS 加密傳輸配置 一、Redis TLS 加密概述 Redis 從 6.0 版本開始原生支持 TLS 加密傳輸&#xff0c;可以保護客戶端與服務器之間的通信安全&#xff0c;防止數據被竊聽或篡改。 二、準備工作 確認 Redis 版本?&#xff1a; redis-server --version確保版本 ≥…

【Linux】深入理解程序地址空間

&#x1f31f;&#x1f31f;作者主頁&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所屬專欄&#xff1a;Linux 目錄 前言 一、什么是程序地址空間 二、深入理解程序地址空間 1. 引例 2. 理解地址轉化 3. 再談程序地址空間 4. 補充知識 總結 前言 在現代操作系…

【深度學習-Day 5】Python 快速入門:深度學習的“瑞士軍刀”實戰指南

Langchain系列文章目錄 01-玩轉LangChain&#xff1a;從模型調用到Prompt模板與輸出解析的完整指南 02-玩轉 LangChain Memory 模塊&#xff1a;四種記憶類型詳解及應用場景全覆蓋 03-全面掌握 LangChain&#xff1a;從核心鏈條構建到動態任務分配的實戰指南 04-玩轉 LangChai…

解決在 Linux 中 WPS 字體缺失問題

解決在 Linux 中 WPS 字體缺失問題 安裝方式 安裝方式 首先下載你所需要的字體文件 在字體文件所在的目錄下右鍵點擊在命令行中打開 或 Open in Terminal sudo mkdir /usr/share/fonts/myfontssudo cp ./* /usr/share/fonts/myfonts執行命令&#xff0c;更新字體緩存 sudo fc…

668SJBH報刊發行系統

1 前言 隨著我國信息產業的迅猛發展&#xff0c;手工管理方式已不適應社務管理的要求&#xff0c;報社的日常管理正面臨著信息化的挑戰&#xff0c;采用計算機管理以提高服務質量和管理水平勢在必行。發行管理是社務管理的一個重要組成部分&#xff0c;是報社和客戶聯系的紐帶…

K8S - 從零構建 Docker 鏡像與容器

一、基礎概念 1.1 鏡像&#xff08;Image&#xff09; “軟件的標準化安裝包” &#xff0c;包含代碼、環境和配置的只讀模板。 技術解析 鏡像由多個層組成&#xff0c;每層對應一個Dockerfile指令&#xff1a; 應用代碼 → 運行時環境 → 系統工具鏈 → 啟動配置核心特性…

better_fbx 下載

目錄 v6.0.5下載&#xff1a; better_fbx 下載 v6.0.5下載&#xff1a; Blender FBX模型導入導出插件 Better FBX Importer & Exporter V6.0.5V5.4.10 For Blender 2.8 | 齲齒一號GFXCamp better_fbx 下載 How To Install Launch Blender, navigate to Edit->User P…

Spring AOP 典型應用場景

AOP 典型應用場景 1. 日志記錄&#xff08;Logging&#xff09;代碼實現 2. 權限校驗&#xff08;Authentication&#xff09;代碼實現 3. 性能監控&#xff08;Performance Monitoring&#xff09;代碼實現 4. 緩存處理&#xff08;Caching&#xff09;代碼實現 5. 重試機制&a…

開始一個vue項目-day2

這次新增的功能有&#xff1a; 1、使用cookie存儲token 參考網站:https://vueuse.org/ 安裝包&#xff1a; npm i vueuse/integrations npm i universal-cookie^7 2、cookie的設置讀取和刪除&#xff0c;代碼&#xff1a;composables/auth.js import { useCookies } from …