位置: IT常识 - 正文

React中useReducer的理解与使用(react usereducer)

编辑:rootadmin
React中useReducer的理解与使用

推荐整理分享React中useReducer的理解与使用(react usereducer),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:react use,react use,react useref和createref,react useref和createref,react userouter,react useref和createref,react usereducer,react usereducer,内容如对您有帮助,希望把文章链接给更多的朋友!

这里以简单的语言描述一下useReducer的使用。也可自己查看官方文档(英文)

useReducer的使用场景: 当一个state需要维护多个数据且它们之间互相依赖。 这样业务代码中只需要通过dispatch来更新state,繁杂的逻辑都在reducer函数中了。

一、useReducer

demo:

function reducer(state, action){ //...}const [state, dispatch] = useReducer(reducer, { name: "qingying", age: 18 });1. useReducer

主要作用就是更新state。

React中useReducer的理解与使用(react usereducer)

参数:

第一个是 reducer 函数,这个函数返回一个新的state。 后面再详述该函数的使用。第二个是 state 初始值。

返回值:

当前 state。(可以在业务代码中获取、操作的就是它。)dispatch 函数,纯函数,用来更新state,并会触发re-render。 (通俗地说,dispatch就是重新操作state的,会让组件重新渲染)2. reducer函数

作用:处理传入的state,并返回新的state。

参数:

接受当前 state。接受一个action,它是 dispatch 传入的。

返回值:

新的state。

3. dispatch函数

发送一个对象给reducer,即action。

参数: 一个对象。 返回值: 无。

完整代码:

import { useReducer } from "react";/* 当state需要维护多个数据且它们互相依赖时,推荐使用useReducer组件内部只是写dispatch({...})处理逻辑的在useReducer函数中。获取action传过来的值,进行逻辑操作*/// reducer计算并返回新的statefunction reducer(state, action) { const { type, nextName } = action; switch (type) { case "ADD": return { ...state, age: state.age + 1 }; case "NAME": return { ...state, name: nextName }; } throw Error("Unknown action: " + action.type);}export default function ReducerTest() { const [state, dispatch] = useReducer(reducer, { name: "qingying", age: 12 }); function handleInputChange(e) { dispatch({ type: "NAME", nextName: e.target.value }); } function handleAdd() { dispatch({ type: "ADD" }); } const { name, age } = state; return ( <> <input value={name} onChange={handleInputChange} /> <br /> <button onClick={handleAdd}>添加1</button> <p> Hello,{name}, your age is {age} </p> </> );}
本文链接地址:https://www.jiuchutong.com/zhishi/300187.html 转载请保留说明!

上一篇:【Node.js实战】一文带你开发博客项目(API 对接 MySQL)(node.js教程详细)

下一篇:SOC计算方法:卡尔曼滤波算法(sockas)

  • 合同中增值税税率怎么描述
  • 应交税费和应交增值税
  • 可供出售金融资产和交易性金融资产
  • 投资者减除费用和工资薪金减除费用
  • 工程款按进度付款开票分录
  • 冲红发票怎么写备注
  • 个人账户发工资扣税吗
  • 政府补助递延收益和其他收益的区别
  • 农林牧渔业项目概述怎么写
  • 公司开办期间的费用如何处理
  • 物业公司收取供热管道内网的维护费用合理吗
  • 报损失怎么报
  • 建筑业预缴税款都要填哪些表
  • 委托生产企业和受托生产企业
  • 建筑劳务有哪些税种
  • 销售肉制品税率
  • 注册资金印花税什么时候开始交
  • 股权转让股权公告范本
  • 销售净利率怎么求
  • 建筑业预缴税款怎么退税
  • ca证书延期不了
  • 用人单位在职职工年平均工资怎么算
  • 联想电脑bios启动项设置方法
  • 企业送礼怎么办
  • Mac SIP系统完整性保护开启及关闭的方法介绍
  • 购置固定资产用什么凭证
  • 股权置换涉税问题
  • 云服务器可以一直开着吗
  • 使用二氧化碳灭火器时人应该站在什么位置
  • 哈士奇宠物狗
  • javascript基础编程
  • 矿产资源补偿费是什么
  • mac m1 安装windows
  • 现金流量表季报本月数是三个月的数据吗
  • 个体工商户要开票吗
  • db2获取当前年月日
  • 社保的账务处理分录
  • 所得税申报报表
  • 资产现金流量收益率为什么不是净利润除以平均现金流量
  • 发票一般会失效几天
  • 附加税多交了怎么抵税
  • 纳税人将购买的货物分配给股东,因该货物购买时已缴纳
  • 当月作废的发票是否需要报税
  • 实收资本为0可以运作吗?
  • 铁路运输印花税按什么比例交
  • 半年净资产收益率
  • 公司安装监控属于什么费用
  • 本年利润的会计科目
  • 我没付款,但是显示成功?
  • 企业年度报告中的什么信息由企业选择是否向社会公示
  • 如何查询公司经营异常
  • mysql数据库优化面试题
  • 使用筷子就餐会不会传染乙肝病毒
  • mysql5.7.35安装
  • windows server2008系统弹出今天必须修改密码该怎么处理?
  • centos怎么调出终端
  • 系统图工具
  • 怎么在ubuntu上编程
  • downloader.exe是什么
  • 根据自己的需求配置一台电脑
  • win10教育系统
  • WIN7系统怎么安装 注音输入法
  • linux与windows有哪些主要区别
  • win10按prtsc没反应
  • win7中Windows Time时间服务错误1060怎么办?
  • jquery 属性
  • ubuntu搭建android开发环境
  • win sc
  • 利用用英文怎么翻译
  • 重定向stdout
  • jquery操作样式的方法
  • web miui
  • python读写docx
  • javascript核心技术
  • 发票开了,税务局上查不到信息是怎么回事
  • 武汉市契税减免政策
  • 企业调查表资金怎么填
  • 5种方式教你如何查询
  • 三种人不交个人所得税?
  • 注册税务师条件要求
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设