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

  • 在程序中定义局部变量的命令动词是什么(在程序中定义的变量(例如int a)中有值吗?为什么?)

    在程序中定义局部变量的命令动词是什么(在程序中定义的变量(例如int a)中有值吗?为什么?)

  • 华为录视频快捷键(华为录视频快捷键没有了哪里找)

    华为录视频快捷键(华为录视频快捷键没有了哪里找)

  • 支付宝在手机上叫货拉拉怎么叫(支付宝在手机上怎么找不到了)

    支付宝在手机上叫货拉拉怎么叫(支付宝在手机上怎么找不到了)

  • 爱奇艺传视频怎么互传(2021最新版爱奇艺怎么传片)

    爱奇艺传视频怎么互传(2021最新版爱奇艺怎么传片)

  • 苹果13系统卡贴机发不了短信(苹果系统卡贴机)

    苹果13系统卡贴机发不了短信(苹果系统卡贴机)

  • 装完系统后重启还是找不到系统(装完系统后重启进不了系统)

    装完系统后重启还是找不到系统(装完系统后重启进不了系统)

  • wps转word后格式变了怎么办(wps转成word文本格式变了咋办)

    wps转word后格式变了怎么办(wps转成word文本格式变了咋办)

  • qq聊天记录最多可以查多久以前的(qq聊天记录最多查到几年前的)

    qq聊天记录最多可以查多久以前的(qq聊天记录最多查到几年前的)

  • oppoa11x微信视频怎么开美颜(oppo微信视频来了没反应)

    oppoa11x微信视频怎么开美颜(oppo微信视频来了没反应)

  • 为什么soul发的瞬间别人看不到(为什么soul发的瞬间没人点赞)

    为什么soul发的瞬间别人看不到(为什么soul发的瞬间没人点赞)

  • qq注销多久彻底消失(qq注销了多长时间消除号)

    qq注销多久彻底消失(qq注销了多长时间消除号)

  • 风扇吱吱响是怎么回事(风扇咯吱咯吱响)

    风扇吱吱响是怎么回事(风扇咯吱咯吱响)

  • 小米9se屏幕间歇性失灵(小米9se屏幕间歇黑屏)

    小米9se屏幕间歇性失灵(小米9se屏幕间歇黑屏)

  • 苹果手机震动有滋滋声怎么解决(苹果手机震动有问题怎么办?)

    苹果手机震动有滋滋声怎么解决(苹果手机震动有问题怎么办?)

  • win10连手机热点不能上网(win10连手机热点吃流量)

    win10连手机热点不能上网(win10连手机热点吃流量)

  • 华硕主板亮灯无法开机(华硕主板亮灯无信号)

    华硕主板亮灯无法开机(华硕主板亮灯无信号)

  • wps怎么查找关键字(wps怎么查找关键字并标注)

    wps怎么查找关键字(wps怎么查找关键字并标注)

  • 如何把自己家定位在地图上(怎么设置自己家的定位名称)

    如何把自己家定位在地图上(怎么设置自己家的定位名称)

  • beat solo3 wireless怎么关机

    beat solo3 wireless怎么关机

  • 公众号能不能看到访客(公众号能不能看到我的朋友圈)

    公众号能不能看到访客(公众号能不能看到我的朋友圈)

  • qq没绑定手机号怎么找回密码(qq没绑定手机号码忘记密码怎么办)

    qq没绑定手机号怎么找回密码(qq没绑定手机号码忘记密码怎么办)

  • windows下实现查看进程对应程序的方法(windows快速查询)

    windows下实现查看进程对应程序的方法(windows快速查询)

  • linux GTK、KDE、Gnome、XWindows 图形界面区别介绍

    linux GTK、KDE、Gnome、XWindows 图形界面区别介绍

  • 防伪税控系统
  • 计提附加税会计凭证怎么做会计分录
  • 企业所得税是含税价还是不含税价
  • 如何计算转让金融商品盘亏应交增值税
  • 税收的基本特征包括?
  • 季报需要注意什么
  • 进项税额记哪方
  • 记账软件收费吗
  • 运输服务增值税纳税义务发生时间
  • 劳保费属于什么会计科目
  • 补提上年度所得税影响本年所得税吗
  • 残疾人士有哪些
  • 年报所得税与季报的区别
  • 税后扣税
  • 国税局预缴税款在哪里看
  • 个税退税手续费税率
  • 子公司注销后人员怎么安置
  • 免税行业企业
  • msvcp140.dll丢失怎么办
  • linux chcon命令
  • mac如何关闭开机启动
  • PHP:session_set_save_handler()的用法_Session函数
  • win10显示未充电
  • lsm.exe是什么程序
  • image driver
  • PHP:pcntl_wexitstatus()的用法_PCNTL函数
  • 应付职工薪酬包括个人社保和个税吗
  • 退货可以吗
  • 期间费用计算公式
  • 实收资本挂在其他应收款怎么冲销
  • javascript速成要多久
  • php导出表格
  • yii2框架从入门到精通
  • php标准数据类型共有四种
  • 应付职工薪酬多栏式
  • 用于应酬用的烟有哪些
  • 企业发生销售退回时,不论销售退回的商品
  • mongodb用法
  • 公司销售自己使用过的固定资产
  • 借条每月还款怎么写
  • 印花税都有什么类目
  • 房地产开发企业成本核算方法
  • 电子承兑被退回要重新背书怎么办
  • 国家税务总局纳税服务规范
  • sqlserver最大数据量
  • 注册资本认缴到期
  • 物流企业货损赔付标准
  • 出资入股是什么意思
  • 公司注销实收资本账务处理
  • 简易办法征收增值税有几种情况
  • 领用工程物资属于什么科目
  • 中小企业的资产负债率均值是多少
  • 支付收购股权款如何做账
  • 发票没交税可以报销吗
  • 填写增值税纳税申报怎么填写?
  • 农民专业合作社法
  • 会计实务实操
  • redhat rhca
  • win8系统怎么关闭投影
  • sguard是什么文件夹
  • windows软件类型最新版本
  • Win10 PC RS2快速预览版14926更新与修复内容汇总
  • linux awk排序
  • mac 硬盘数据恢复
  • cocos2d怎么用
  • gpu缩放在哪里打开
  • Android UI之FrameLayout(帧布局)
  • 生成0-100的随机数,直到生成88为止,停止循环
  • 在Linux下用scp复制文件无需输入密码的技巧
  • unity给物体添加重力
  • JavaScript入门教程
  • android应用市场有哪些
  • javascript闭包运行原理
  • 动态表单的设计与实现
  • 北京 国税
  • 本期预缴税额怎么填
  • 划拨土地是否可以出租的法律规定
  • 北京市国家税务局发票查询
  • 2023年车辆购置税优惠政策有哪些
  • 环保职责及管理范围
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设