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

  • cod的全称是什么?(COD的全称是什么?)

    cod的全称是什么?(COD的全称是什么?)

  • 微信朋友圈很卡是怎么回事(微信朋友圈很卡,但是内存够的)

    微信朋友圈很卡是怎么回事(微信朋友圈很卡,但是内存够的)

  • win10关机时间非常长(win10自动关机时间)

    win10关机时间非常长(win10自动关机时间)

  • oppo手机速览怎么关闭(oppo手机速览怎么恢复)

    oppo手机速览怎么关闭(oppo手机速览怎么恢复)

  • 华为为什么要搞个NM存储卡(华为为什么要搞od)

    华为为什么要搞个NM存储卡(华为为什么要搞od)

  • 苹果突然死机什么情况(苹果突然死机没反应)

    苹果突然死机什么情况(苹果突然死机没反应)

  • 华为p40怎么设置视频美颜(华为p40怎么设置动态壁纸)

    华为p40怎么设置视频美颜(华为p40怎么设置动态壁纸)

  • 一个钉钉能加两个班级吗(一个钉钉能加两个班级吗怎么加)

    一个钉钉能加两个班级吗(一个钉钉能加两个班级吗怎么加)

  • 华为nova6隐私空间怎么用(华为nova6隐私空间怎么隐藏)

    华为nova6隐私空间怎么用(华为nova6隐私空间怎么隐藏)

  • 怎么查字数(怎么查字数统计)

    怎么查字数(怎么查字数统计)

  • 怎么隐藏热点(怎么隐藏热点不让别人发现)

    怎么隐藏热点(怎么隐藏热点不让别人发现)

  • 光纤的特点(下列哪个不是光纤的特点)

    光纤的特点(下列哪个不是光纤的特点)

  • 软件从c盘移到d盘为什么就打不开了(软件从c盘移到d盘卸载不了了)

    软件从c盘移到d盘为什么就打不开了(软件从c盘移到d盘卸载不了了)

  • 滴滴优享申请条件(滴滴优享申请条件需要多少单量)

    滴滴优享申请条件(滴滴优享申请条件需要多少单量)

  • wps删除整页(wps删除整页怎么删?这样操作简单又快捷)

    wps删除整页(wps删除整页怎么删?这样操作简单又快捷)

  • 手机怎么使用谷歌搜索(手机怎么使用谷歌地图)

    手机怎么使用谷歌搜索(手机怎么使用谷歌地图)

  • 戴尔怎么u盘装系统(戴尔电脑如何用u盘安装启动电脑)

    戴尔怎么u盘装系统(戴尔电脑如何用u盘安装启动电脑)

  • mate20pro怎么升级emui10(mate20pro怎么升级鸿蒙3.0)

    mate20pro怎么升级emui10(mate20pro怎么升级鸿蒙3.0)

  • 苹果2代耳机有线和无线怎么区别(苹果2代耳机有定位吗)

    苹果2代耳机有线和无线怎么区别(苹果2代耳机有定位吗)

  • shelper是什么软件OPPO手机(parler是什么软件)

    shelper是什么软件OPPO手机(parler是什么软件)

  • 坚果pro2s怎么使用tnt(坚果pro2使用手册)

    坚果pro2s怎么使用tnt(坚果pro2使用手册)

  • dua一al00是什么型号(dub-al00a是)

    dua一al00是什么型号(dub-al00a是)

  • 手机谷歌浏览器怎么改中文(手机谷歌浏览器用什么加速器能打开)

    手机谷歌浏览器怎么改中文(手机谷歌浏览器用什么加速器能打开)

  • oppok3怎么关闭后台

    oppok3怎么关闭后台

  • 小米怎么用抖音做锁屏(小米怎么抖音投屏)

    小米怎么用抖音做锁屏(小米怎么抖音投屏)

  • 贷款取现金
  • 单位的车辆车船税怎么交
  • 专用发票和普通票有区别吗
  • 中药和中药饮片效果一样吗
  • 固定资产投资损失怎么做账
  • 计提个人社会保险费
  • 预缴的所得税怎么做分录
  • 大额存款提前取一部分怎么计息
  • 银行美元账户调汇会计分录
  • 存货毁损计入
  • 如果一直没到国税局办理登记怎么办
  • 所得税弥补亏损年限10
  • 互联网合同范本
  • 海关增值税抵扣是全额抵扣所得税
  • 企业与个人租赁合同范本
  • 建筑施工企业印花税计税依据
  • 房产印花税缴纳
  • 已经作废了的发票怎么查
  • 办理税务登记与办理法人企业有何区别?
  • 债转股的税收政策
  • 劳务派遣用工工资标准
  • 居民企业的判定条件
  • 绩效奖金是否属于工资判决书
  • 含税房租
  • 个人免征增值税起征点
  • 会计帐务处理程序
  • mac系统如何开启任何来源
  • 小规模纳税人的增值税怎么算
  • 葛根泡水喝的七大功效
  • 交易性金融资产属于流动资产
  • wordpress创建
  • 增值税加计扣除最新政策
  • 收据不可以入账吗
  • php功能模块
  • framework3.5启用
  • [ChatGPT] 从 GPT-3.5 到 GPT-5 的进化之路 | ChatGPT和程序员 : 协作 or 取代
  • pytorch1.5
  • 计提工资扣社保的凭证
  • 公司法人的分类是什么
  • 企业会计准则是属于什么
  • 金蝶软件怎么录入发票号
  • 管理费用核算的是
  • 购进固定资产的账务处理
  • 小规模纳税人是季度报税吗
  • 购买土地缴纳契税会计分录
  • 同一控制下的长投入账价值按什么计算
  • 砖厂的会计分录有哪些
  • 账上存货太多实收怎么办
  • 成品油生产库存
  • 业务招待费礼品要扣个税吗
  • 电信电子发票什么格式
  • 企业收到补贴资金怎么办
  • 生产型企业电费会计分录
  • 电子秤计入什么费用
  • 资产减值损失属于营业外支出吗
  • 其他货币资金存出投资款借方增加还是减少
  • 设备基础属于什么基础
  • 年初未分配利润在利润表怎么填
  • Mysql 1864 主从错误解决方法
  • centos 7.0截屏快捷键有冲突该怎么更换?
  • freebsd使用手册
  • 分布式交互
  • 电脑显示器无信号键盘灯不亮
  • win10 edge浏览器设置信任站点
  • linux的ssr
  • 红石id
  • 一个监控网卡流量够用吗
  • js实现apply函数
  • 用一个简单的方法作文
  • es6十大特性
  • jquery(document).ready
  • unity的gui
  • js中弹出对话框
  • 上海税务登记如何网上申请
  • 旧房转让土地增值税扣除项目
  • 国家税务总局手工发票查询平台
  • 深圳税务局官方客服电话
  • 广西纳税申报流程
  • 2018年申报时间
  • 今年烟草税多少钱
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设