【React】useReducer

让 React 管理多个相对关联的状态数据

js 复制代码
import { useReducer } from "react"
// 1. 定义reducer函数,根据不同的action返回不同的状态
function reducer(state, action) {
  switch (action.type) {
    case 'ADD':
      return state + action.payload
    case 'SUB':
      return state - 1
    default:
      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;
相关推荐
RD_daoyi8 分钟前
Google核心算法不再通知!全年持续滚动更新
大数据·服务器·前端·网络·搜索引擎·.net
এ慕ོ冬℘゜13 分钟前
纯 CSS 实现自定义 Switch 开关(商品上下架滑块)
前端·css
再吃一根胡萝卜13 分钟前
dompdf.js 分页功能完整实现指南
前端
wordbaby17 分钟前
App 热更新(OTA)原理深解 —— 以 React Native 为例
前端·react native
晴天1623 分钟前
Rust 快速入门 (从 JavaScript 开发者视角)-Day09
开发语言·javascript·rust
再吃一根胡萝卜27 分钟前
Vue + dompdf.js 实现简历分页导出的完整踩坑记录
前端
其美杰布-富贵-李40 分钟前
第 6 篇:相机与 OrbitControls
前端·javascript·three.js
lichenyang45344 分钟前
从图片生成任务到用户隔离:AIGC Creative Studio 后端与 PostgreSQL 建模实践
前端·后端
小黑技术栈1 小时前
关于前端的一些话
前端
阿黎梨梨2 小时前
从“能用”到“好维护”:React + TypeScript 实战指南
react.js