位置: 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)

  • 个体户定期定额征收标准
  • 进项税跟增值税
  • 转让不动产账务处理
  • 自产用于捐赠的会计处理
  • 税务师工作年限是从毕业当天开始计算吗
  • 预收货款开票怎么做账
  • 法定盈余公积可以分配给股东吗
  • 收到前欠销货款290000元,存入银行的会计分录怎么写
  • 收到固定资产抵账增值税计税基础
  • 附加税的计税依据是实缴增值税
  • 银行代扣水费发票怎么开
  • 出纳去银行
  • 单位买酒报销如何做账
  • 工会经费2020年免征
  • 无票收入增值税申报表怎么填小规模纳税人
  • 运费计入采购成本会计分录
  • 非公益性赠送该怎么进行会计处理?
  • 电子税务局印花税税种认定
  • 安装设备领用原材料应该用成本还是公允
  • 汇兑结算方式可以分为
  • 存货跌价准备计提原则
  • 3070和3070ti性能差多少
  • bios咋进入
  • 总分类账是什么的依据
  • 收到政府财政拨款用于购买生产设备
  • 公司收到政府科技创新奖
  • 清算中无法偿还的债务
  • 银行代扣的年费怎么退
  • Win10 20H2 Beta 预览版 19042.782正式推送(附更新内容)
  • 总结linux命令行的主要用法
  • 购买生产用品计入什么科目
  • EasyExcel使用与步骤
  • 开发票的时候补差价怎么处理?
  • 事业单位结息会降薪吗
  • 经营租出的设备要计提折旧吗
  • vue中使用数组
  • 分包工程的账务处理
  • 非金融机构从事贷款谁负责监管
  • php反射使用场景
  • ajax不刷新页面
  • 递延收益会计科目的账务处理
  • 分公司不享受小规模纳税
  • 公司买的公文包会计怎么做
  • 前端开发常用技术
  • ChatDoctor本地部署应用的实战方案
  • 免费开源的图片app
  • 【机器学习】前置知识:矩阵的表示与定义 | Identity 身份矩阵 | 逆矩阵和转置 | 标量乘法
  • python解密加密文件
  • 购入固定资产的会计处理
  • mongodb优点
  • 财政部监制的收据没有税号可以入账吗
  • 固定资产卡片账是明细账吗
  • 国际快递运输服务有哪些
  • 所得税费用是会计科目吗
  • 估价入帐能跨年吗
  • 制造费用主要核算项目
  • 销售过程中发生的商业折扣计入
  • 凭证摘要写错了已结账了怎么办
  • 电商会计怎么做账
  • 购买的材料入库属于什么会计科目
  • 有没有月初发放当月工资的
  • 为什么留存收益不考虑筹资费用
  • 员工领备用金不还能起诉吗法院
  • 弱电系统可以入户门吗
  • mysql更新表中的数据
  • vista技巧:更改电源默认按钮为关机
  • mac book丢失
  • mac识别文字软件
  • linux文件一般放哪里
  • javascript中匿名函数
  • js中创建对象的几种方法
  • 微软早在1985年便首次使用了安卓上饱受争议的汉堡按钮
  • 运满满订单取消技术服务费退还吗
  • 洛阳契税首套房认定标准
  • 青岛网上办税服务厅登录
  • 国家税务网上办税平台
  • 腾讯 短信服务
  • 出口备案单证管理办法
  • 绵阳税务局咨询电话
  • 电子秒表怎么读数9:33.12
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设