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

  • 机械键盘灯光怎么切换色彩(机械键盘灯光怎么换)

    机械键盘灯光怎么切换色彩(机械键盘灯光怎么换)

  • 苹果手机淘宝淘气值在哪里看(苹果手机淘宝淘友圈怎么关闭)

    苹果手机淘宝淘气值在哪里看(苹果手机淘宝淘友圈怎么关闭)

  • 爱奇艺会员密码在哪查看(爱奇艺会员密码账号)

    爱奇艺会员密码在哪查看(爱奇艺会员密码账号)

  • ns充不进电(ns充不进电 充电图标闪烁)

    ns充不进电(ns充不进电 充电图标闪烁)

  • 华为p40怎么删除正在运行(华为p40怎么删除门禁卡)

    华为p40怎么删除正在运行(华为p40怎么删除门禁卡)

  • 手机视频没有声音是怎么回事(手机视频没有声音怎么回事儿)

    手机视频没有声音是怎么回事(手机视频没有声音怎么回事儿)

  • 什么软件可以在视频上加文字(什么软件可以在图片上加图片)

    什么软件可以在视频上加文字(什么软件可以在图片上加图片)

  • 华为畅享7怎么恢复出厂设置(华为畅享7怎么样)

    华为畅享7怎么恢复出厂设置(华为畅享7怎么样)

  • 苹果11后壳容易碎吗(苹果11后壳容易刮花)

    苹果11后壳容易碎吗(苹果11后壳容易刮花)

  • qq空间访客记录最多显示几年前的(qq空间访客记录是怎么算的)

    qq空间访客记录最多显示几年前的(qq空间访客记录是怎么算的)

  • 微信提醒怎么取消(微信提醒怎么取消安卓)

    微信提醒怎么取消(微信提醒怎么取消安卓)

  • 苹果手机上划划不动怎么办(苹果手机上划划不动)

    苹果手机上划划不动怎么办(苹果手机上划划不动)

  • 苹果有线耳机插上没反应(苹果有线耳机插上没声音)

    苹果有线耳机插上没反应(苹果有线耳机插上没声音)

  • 短信为啥带红色感叹号(为什么发短信显示红色)

    短信为啥带红色感叹号(为什么发短信显示红色)

  • 注册抖音必须要手机号么(注册抖音必须要公司账号吗)

    注册抖音必须要手机号么(注册抖音必须要公司账号吗)

  • 怎么弄微信红包封面(怎么弄微信红包的皮肤)

    怎么弄微信红包封面(怎么弄微信红包的皮肤)

  • 华为nova5pro怎么长截屏(华为nova5pro怎么看电池寿命)

    华为nova5pro怎么长截屏(华为nova5pro怎么看电池寿命)

  • 拼多多邀请口令怎么变成链接(拼多多邀请口令在哪)

    拼多多邀请口令怎么变成链接(拼多多邀请口令在哪)

  • 探探右滑次数几点重置(探探右滑上限了怎么办)

    探探右滑次数几点重置(探探右滑上限了怎么办)

  • 微信怎么连接音响(微信怎么连接音箱放歌)

    微信怎么连接音响(微信怎么连接音箱放歌)

  • 华为手机打电话黑屏怎么关(华为手机打电话黑屏怎么解决)

    华为手机打电话黑屏怎么关(华为手机打电话黑屏怎么解决)

  • 目录如何自动生成页码(目录如何自动生成页码wps)

    目录如何自动生成页码(目录如何自动生成页码wps)

  • window.print() 前端页面打印与预览PDF(前端 input)

    window.print() 前端页面打印与预览PDF(前端 input)

  • PHPCMS能用Vue开发吗?(phpvue开发模式)

    PHPCMS能用Vue开发吗?(phpvue开发模式)

  • 第三方代付款的账务处理
  • 营业执照副本上的二维码扫描不出来
  • 财务报表上期金额怎么填写
  • 出口退税逾期申报,需申报出口货物收汇情况表
  • 工商年检股东变更流程
  • 货币资金项目应根据账户的期末余额合计填列
  • 普通发票验旧后当月能作废吗
  • 委托加工消费税纳税义务发生时间
  • 当年实现的利润属于资产吗
  • 手工账写错字怎么改呢
  • 冲减成本怎么做会计分录
  • 如果增值税发票丢了好的怎么办有谁交罚熬一
  • 如何知道企业交了多少税
  • 装修公司在装修完后增加费用
  • 申报专项资金项目是什么
  • 退货没有红字发票怎么办
  • 在建期间费用怎么处理?
  • 季度利润表上期金额怎么填
  • 公司注销后是不是就不再接受诉讼
  • 可供出售金融资产会计处理
  • 五联折叠票和两联折叠票的区别
  • 用于研发的设备如何折旧
  • Win7系统Syswow64文件夹是什么及能否删除的相关内
  • itunes无法链接
  • 索尼vaio笔记本看型号
  • 如果工资少发怎么办
  • dvdram是什么意思
  • 销售费用税前扣除吗
  • PHP:ob_iconv_handler()的用法_iconv函数
  • php symlink
  • 待抵扣进项税额借贷方向
  • php中类静态成员描述不正确的是
  • input 文件
  • 残保金如何缴纳残疾人工资如何扣除
  • python怎么用
  • 应收账款占比是什么
  • SQL Server 2008中SQL之WaitFor使用介绍
  • sqlserver启动不起来
  • 分配股利需要缴纳个税吗
  • 银行承兑汇票到期无力支付计入什么科目
  • 临时工工资如何做账
  • 社保退回的钱怎么做会计分录
  • 职工福利费和工会经费
  • 银行手续费没有发票
  • 劳务公司的劳务税是多少
  • 工商银行代收是什么意思
  • 企业采用公允价值进行会计核算,所体现的会计质量要求
  • 企业如何计算增值税
  • 安装sql server 2008硬件要求
  • mysql优化实战
  • django使用mysql
  • sql判断字段是否有某个值
  • 升级win8.1 64位系统后无法玩剑灵怎么办?win8.1系统无法玩剑灵的解决方法
  • xp系统为什么不能用了
  • mac os ftp
  • ubuntuiso
  • mac系统怎么清理Adobe残留
  • centos 3
  • mac 系统查看
  • linux中关闭系统命令
  • win8.
  • Win10控制面板在c盘哪里
  • vm虚拟机怎么使用
  • jquery判断div是否显示
  • 前端笛卡尔积
  • android系统分区理解及分区目录细解
  • AngularJS中controller控制器继承的使用方法
  • net命令大全
  • jq复选框选中触发事件
  • python生成随机数表
  • javascript基础教程pdf
  • django教程推荐
  • javascript有哪些常用的属性和方法
  • js面向对象编程实例
  • tiny rails汉化
  • 安卓接口回调例子
  • 中国移动怎么下载账单
  • 2021税收分类编码大全
  • 国家税务总局2019年45号公告解读
  • 怎样在微信小程序里交医保
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设