当前位置: 首页 > article >正文

【React】useReducer

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

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;


http://www.kler.cn/a/147245.html

相关文章:

  • Unity3D 完整直升机控制器(虚拟仿真级别)
  • 螺旋矩阵II(leetcode 59)
  • [前端面试]javascript
  • Android OpenGL ES详解——实例化
  • 【CANOE】【学习】【DecodeString】字节转为中文字符输出
  • 物理hack
  • OpenCvSharp从入门到实践-(03)像素
  • 搭建web服务器
  • Android 单元测试初体验
  • shell_exec 和 exec区别
  • 机器学习——多元线性回归升维
  • HarmonyOS 数据持久化 Preferences 如何在页面中对数据进行读写
  • leetcode做题笔记828. 统计子串中的唯一字符
  • C 中的指针 - 数组和字符串
  • 红黑树(万字图文详解)
  • VUE项目部署过程中遇到的错误:POST http://124.60.11.183:9090/test/login 405 (Not Allowed)
  • WSL2编译内核并更改替换内核版本
  • 安陆FPGA调试中遇到的问题总结
  • 过渡曲线的构造之平面PH曲线
  • oracle数据库巡检常见脚本-系列二
  • Ubuntu 23.10 服务器版本 ifconfig 查不到网卡 ip(已解决)
  • 【LeetCode】挑战100天 Day16(热题+面试经典150题)
  • ElasticSearch之虚拟内存
  • c++日志单例实现
  • Mysql解决随机选取问题
  • 前端入门(三)Vue生命周期、组件原理、脚手架、插槽插件、存储、组件事件、动画、跨域与代理