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

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.xdnf.cn/news/3457.html

相关文章:

  • 数字智慧方案5875丨智慧交通枢纽综合解决方案(43页PPT)(文末有下载方式)
  • 数据结构学习笔记
  • 4.5 使用busybox制作根文件系统
  • Kotlin 基础
  • GitHub 趋势日报 (2025年05月01日)
  • Google机器学习系列 - 监督学习
  • Flutter BottomNavigationBar 详解
  • 综合案例:使用vuex对购物车的商品数量和价格等公共数据进行状态管理
  • ARM 指令集(ubuntu环境学习)第七章:系列总结与未来展望
  • 【愚公系列】《Manus极简入门》012-自我认知顾问:“内在探索向导”
  • 数据结构与算法:图论——最短路径
  • LearningFlow:大语言模型城市驾驶的自动化策略学习工作流程
  • Golang 身份证号码校验
  • bilibili如何获取视频的分节的目录
  • 【安装指南】Chat2DB-集成了AI功能的数据库管理工具
  • Shell 脚本基础
  • RabbitMQ的交换机
  • 解决The‘InnoDB’feature is disabled; you need MySQL built with ‘InnoDB’ to have it
  • ARM架构详解:定义、应用及特点
  • 计算机组成原理实验(6) 微程序控制单元实验
  • 大模型开发学习笔记
  • 提示词版本化管理:AI开发中被忽视的关键环节
  • 【Linux】基础指令(2)
  • 冯·诺依曼体系:现代计算机的底层逻辑与百年传承
  • C++ 与 Lua 联合编程
  • Python-pandas-操作Excel文件(读取数据/写入数据)及Excel表格列名操作详细分享
  • 单链表操作(single list)
  • Python高级爬虫之JS逆向+安卓逆向1.7节: 面向对象
  • NY204美光闪存MT29F8T08EQLCHL5-QA:C
  • python设置word字体的方法