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

react 之 UseReducer

UseReducer作用: 让 React 管理多个相对关联的状态数据

在这里插入图片描述
在这里插入图片描述

import { useReducer } from 'react'// 1. 定义reducer函数,根据不同的action返回不同的新状态
function reducer(state, action) {switch (action.type) {case 'INC':return state + 1case 'DEC':return state - 1default:return state}
}function App() {// 2. 使用useReducer分派actionconst [state, dispatch] = useReducer(reducer, 0)return (<>{/* 3. 调用dispatch函数传入action对象 触发reducer函数,分派action操作,使用新状态更新视图 */}<button onClick={() => dispatch({ type: 'DEC' })}>-</button>{state}<button onClick={() => dispatch({ type: 'INC' })}>+</button></>)
}export default App

更新流程

分派action传参

做法:分派action时如果想要传递参数,需要在action对象中添加一个payload参数,放置状态参数

// 定义reducerimport { useReducer } from 'react'// 1. 根据不同的action返回不同的新状态
function reducer(state, action) {console.log('reducer执行了')switch (action.type) {case 'INC':return state + 1case 'DEC':return state - 1case 'UPDATE':return state + action.payloaddefault:return state}
}function App() {// 2. 使用useReducer分派actionconst [state, dispatch] = useReducer(reducer, 0)return (<>{/* 3. 调用dispatch函数传入action对象 触发reducer函数,分派action操作,使用新状态更新视图 */}<button onClick={() => dispatch({ type: 'DEC' })}>-</button>{state}<button onClick={() => dispatch({ type: 'INC' })}>+</button><button onClick={() => dispatch({ type: 'UPDATE', payload: 100 })}>update to 100</button></>)
}export default App

在这里插入图片描述

http://www.lryc.cn/news/292521.html

相关文章:

  • C++:this隐藏参数
  • MySQL事务原理-相关日志
  • 内核Oops的几种定位方法
  • 外包干了10个月,技术退步明显.......
  • 2024美赛C完整思路
  • Backtrader 文档学习- Broker - Cheat-On-Open
  • 基于微信浙江杭州某停车场车位预约小程序系统设计与实现 研究背景和意义、国内外现状
  • 编程流程图
  • 2024年1月29日-2月4日(全面进行+收集虚幻商城免费资源)
  • 【python接口自动化】- 正则用例参数化
  • Java中的四种线程池详解及使用场景
  • Google Chrome 常用的几个参数
  • Keil软件某些汉字输出乱码,0xFD问题,51单片机
  • 自然语言开发AI应用,利用云雀大模型打造自己的专属AI机器人
  • Android中 Gradle与 AGP 版本对应关系表
  • Linux基础知识合集
  • 跟着pink老师前端入门教程-day13
  • go语言基础之泛型
  • Vue.js 中子组件向父组件传值的方法
  • 数据可视化 pycharts实现地理数据可视化(全球地图)
  • Mac下查看、配置和使用环境变量
  • 虚拟机克隆的三种方式:全量克隆、快速全量克隆、链接克隆
  • 如何隐藏Selenium特征实现自动化网页采集
  • springboot149智慧图书管理系统设计与实现
  • 3D词云图
  • opencv-python 视频读取: VideoCapture.get()参数详解
  • python封装的.exe文件是如何在cmd中获取.xml路径的?
  • 【学网攻】 第(18)节 -- 网络地址转换动态NAT
  • nosql数据库期末考试知识点总结
  • 字节大佬含泪吐血总结系列之 《计算机网络》(谢希仁)