【React】useReducer

讓 React 管理多個相對關聯的狀態數據

import { useReducer } from "react"
// 1. 定義reducer函數,根據不同的action返回不同的狀態
function reducer(state, action) {switch (action.type) {case 'ADD':return state + action.payloadcase 'SUB':return state - 1default:return state}
}function App() {// 2. 組件中調用 useReducer, 0 是初始化參數const [state, dispatch] = useReducer(reducer, 0)return (<div className="App">{state}{/* 3. 調用dispatch 產生一個新的狀態,匹配事件(可傳參) 更新 UI */}<button onClick={() => { dispatch({ type: 'ADD', payload:100 }) }}>+</button><button onClick={() => { dispatch({ type: 'SUB' }) }}>-</button></div>)
}export default App;

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

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

相關文章

Python與設計模式--原型模式

4-Python與設計模式–原型模式 一、圖層 大家如果用過類似于Photoshop的平面設計軟件&#xff0c;一定都知道圖層的概念。圖層概念的提出&#xff0c; 使得設計、圖形修改等操作更加便利。設計師既可以修改和繪制當前圖像對象&#xff0c;又可以保留其它 圖像對象&#xff0c;…

在 Ubuntu 上安裝最新版的 Calibre

目錄 前言 方法1&#xff1a;從 Ubuntu 的倉庫安裝 Calibre 卸載 Calibre 方法2&#xff1a;獲取最新版本的 Calibre 卸載 Calibre 結語 前言 Calibre 是一款自由開源的電子書軟件。下面介紹如何在 Ubuntu Linux 上安裝它。 作為電子書管理的瑞士軍刀&#xff0c;Calibre …

線程-Thread類及常見方法

目錄 一、創建線程 1.繼承 Thread 類 2. 實現 Runnable 接口 3.匿名內部類創建 Thread 子類對象 4. 匿名內部類創建 Runnable 子類對象 5. lambda 表達式創建 Runnable 子類對象 二、Thread 類及常見方法 2.1 Thread 的常見構造方法 2.2 Thread 的幾個常見屬性 2.3 啟…

C++初級項目webserver項目流程介紹(2)

一、引言 C的webserver項目是自己在學完網絡編程后根據網課的內容做的一個初級的網絡編程項目。 這個項目的效果是可以在瀏覽器通過輸入網絡IP地址和端口&#xff0c;然后打開對應的文件目錄 效果如下&#xff1a; 也可以打開文件夾后點擊目錄&#xff0c;打開到對應的文件夾…

Vue中項目進行文件壓縮與解壓縮 (接口返回文件的url壓縮包前端解析并展示出來,保存的時候在壓縮后放到接口入參進行保存)

安裝 npm install pako在Vue組件中引入pako&#xff1a; import pako from pako;接口返回的url是這個字段 tableSsjsonUrl 其實打開就是壓縮包const source await tableFileUrl ({ id: this.$route.query.id}); if(source.code 0) {this.titleName source.data.tableNam…

ES之x-pack-core-7.14.2許可證修改為白金版

X-Pack是什么 X-pack是elasticsearch的一個擴展包&#xff0c;將安全&#xff0c;警告&#xff0c;監視&#xff0c;圖形和報告功能捆綁在一個易于安裝的軟件包中&#xff0c;雖然x-pack被設計為一個無縫的工作&#xff0c;但是你可以輕松的啟用或者關閉一些功能。 主要分一下步…

WebSocket 鑒權策略與技巧詳解

WebSocket 作為實時通信的利器&#xff0c;越來越受到開發者的青睞。然而&#xff0c;為了確保通信的安全性和合法性&#xff0c;鑒權成為不可或缺的一環。本文將深入探討 WebSocket 的鑒權機制&#xff0c;為你呈現一攬子的解決方案&#xff0c;確保你的 WebSocket 通信得心應…

【Qt之QTextDocument】使用及表格顯示富文本解決方案

【Qt之QTextDocument】使用 描述常用方法及示例使用QTextList使用QTextBlock使用QTextTable表格顯示富文本結論 描述 QTextDocument類保存格式化的文本。 QTextDocument是結構化富文本文檔的容器&#xff0c;支持樣式文本和各種文檔元素&#xff0c;如列表、表格、框架和圖像。…

CANopen協議【SDO】

SDO&#xff1a; SDO是讀寫單個寄存器。主要用于配置伺服驅動器參數。 1 收發功能&#xff1a; //public unsafe struct VCI_CAN_OBJ //CAN數據幀 【單幀對象】//{// public uint ID;// 幀ID。 【11bit】數據右對齊。 詳情請參照&#xff1a; 《8.附件1&#xff1…

Python 模塊

目錄 模塊 6.1. 模塊詳解 6.1.1. 以腳本方式執行模塊 6.1.2. 模塊搜索路徑 6.1.3. “已編譯的” Python 文件 6.2. 標準模塊 6.3. dir() 函數 6.4. 包 6.4.1. 從包中導入 * 6.4.2. 相對導入 6.4.3. 多目錄中的包 模塊 退出 Python 解釋器后&#xff0c;再次進入時&a…

手把手教你安裝 Visual Studio 2022 及其簡單使用

軟件下載 打開 Visual Studio 官網&#xff0c;個人選擇免費的Community社區版就夠用了。 軟件安裝 雙擊運行安裝程序&#xff1a; 點擊繼續 即可&#xff1a; 等待加載完成&#xff1a; 可以看到 Visual Studio 2022 對應不同的開發需求提供了若干工作負載&#xff0c;這里以…

?3ds Max插件CG MAGIC圖形板塊為您提升線條效率!

?通過3ds Max軟件進行繪圖操作時&#xff0c;大多絆住各位設計師們作圖速度的往往都是一些細微的瑣事&#xff0c;重復一變一變的調整修改等問題。 今天說到這個繪圖線條來回調整解決方法就是3ds Max插件CG MAGIC。 Max插件CG MAGIC作為一款智能化的輔助插件&#xff0c;致力于…

flutter編譯和構建鴻蒙應用程序(windows環境)

flutter編譯和構建鴻蒙應用程序&#xff08;windows環境&#xff09; 問題背景 針對 OpenHarmony 的 Flutter 版本已經開源&#xff0c;參考 https://gitee.com/openharmony-sig/flutter_flutter。 本文為實踐該流程&#xff0c;實現flutter打包鴻蒙hap包的流程。目前流程已經…

flink的java.lang.IllegalStateException: Buffer pool is destroyed 異常

背景 最近flink的在線應用出現錯誤java.lang.IllegalStateException: Buffer pool is destroyed&#xff0c;本文記錄下這個錯誤的原因 錯誤原因 詳細的日志堆棧如下: Caused by: java.lang.IllegalStateException: Buffer pool is destroyed. at org.apache.flink.runtime…

Ps:畫筆工具的基本操作

畫筆工具 Brush Tool是 Ps 中最常用的工具&#xff0c;廣泛地用于繪畫與修飾工作。 雖然多數操作可在畫筆工具的工具選項欄中選擇執行&#xff0c;但是如果能記住相應的快捷鍵可大大提高工作效率。 熟練掌握畫筆工具的操作對于使用其他工具也非常有益&#xff0c;因為 Ps 中許多…

CSS-長度單位篇

px&#xff1a;像素em&#xff1a;相對元素font-size的倍數rem&#xff1a;相對根字體大小&#xff0c;html標簽就是根%&#xff1a;相對父元素計算 注意&#xff1a;CSS中設置長度&#xff0c;必須加單位&#xff0c;否則樣式無效&#xff01;

Maven - 打包之爭:Jar vs. Shade vs. Assembly

文章目錄 Pre概述Jar 打包方式_maven-jar-pluginOverview使用官方文檔 Shade 打包方式_maven-shade-pluginOverview使用將部分jar包添加或排除將依賴jar包內部資源添加或排除自動將所有不使用的類排除將依賴的類重命名并打包進來 &#xff08;隔離方案&#xff09;修改包的后綴…

ElasticSearch之cat component templates API

命令樣例如下&#xff1a; curl -X GET "https://localhost:9200/_cat/component_templates?vtrue&pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPHQBEs5*lo7F9"執行結果輸出如下&#xff1a; name …

Qt/QML編程學習之心得:一個QML工程的學習筆記(十)

前言: 到底什么是Qt Quick呢?因為Qt Quick是Qt新引入的,Qt Quick由Qt Quick模塊提供,它是一個編寫QML應用的標準庫。Qt Quick模塊提供了兩種接口:使用QML語言創建應用的QML接口和使用C++語言擴展QML的C++接口。使用Qt Quick模塊,設計人員和開發人員可以輕松地構建流暢的…

【自主探索】基于 frontier_exploration 的單個機器人自主探索建圖

文章目錄 一、概述1、功能2、要求 二、使用方法1、用于運行演示2、用于開發人員2.1. 探索無/地圖數據2.2. 使用 /map 數據進行探索 三、提供的組件1、explore_client1.1. 調用的操作1.2. 訂閱主題1.3. 發布主題 2、explore_server2.1. 提供的操作2.2. 調用的操作2.3. 調用的服務…