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

  • 和你执手相拥碎步流年(执手相拥是什么意思)

    和你执手相拥碎步流年(执手相拥是什么意思)

  • sony psp3000开不了机(sony psp3000)(索尼psp2000开机)

    sony psp3000开不了机(sony psp3000)(索尼psp2000开机)

  • 华为Nova5Pro有没有消息指示灯(华为nova5pro有没有内置红外发射器)

    华为Nova5Pro有没有消息指示灯(华为nova5pro有没有内置红外发射器)

  • 11跟11pro的区别(11和11pro什么区别)

    11跟11pro的区别(11和11pro什么区别)

  • 荣耀手机锁屏时间如何设置(荣耀手机锁屏时间位置怎么移动)

    荣耀手机锁屏时间如何设置(荣耀手机锁屏时间位置怎么移动)

  • 笔记本电脑自身有网吗(笔记本电脑自身鼠标怎么使用)

    笔记本电脑自身有网吗(笔记本电脑自身鼠标怎么使用)

  • iqooneo3是什么屏幕(iqooneo3是什么屏幕材质)

    iqooneo3是什么屏幕(iqooneo3是什么屏幕材质)

  • 电影hdr什么意思(电影 hdr)

    电影hdr什么意思(电影 hdr)

  • 苹果xr怎么开闪光灯(苹果xr怎么开闪光)

    苹果xr怎么开闪光灯(苹果xr怎么开闪光)

  • 手机闹钟删除了为什么还响(手机闹钟删除了还响怎么办)

    手机闹钟删除了为什么还响(手机闹钟删除了还响怎么办)

  • 苹果手机相机实况是什么意思(苹果手机相机实况模式长曝光在哪里)

    苹果手机相机实况是什么意思(苹果手机相机实况模式长曝光在哪里)

  • 荣耀20s是5g手机吗(荣耀20s是5g吗)

    荣耀20s是5g手机吗(荣耀20s是5g吗)

  • 微信冻结是什么意思(微信冻结是什么样的界面)

    微信冻结是什么意思(微信冻结是什么样的界面)

  • 双卡手机能装两张移动卡吗(双卡手机能装两个人的卡吗)

    双卡手机能装两张移动卡吗(双卡手机能装两个人的卡吗)

  • 华为手机只振动不开机(华为手机只振动不开机亮灯)

    华为手机只振动不开机(华为手机只振动不开机亮灯)

  • 前程无忧面试能取消吗(前程无忧面试能录视频吗)

    前程无忧面试能取消吗(前程无忧面试能录视频吗)

  • 微信朋友圈置顶怎么设置(微信朋友圈置顶屏蔽的人能看到吗)

    微信朋友圈置顶怎么设置(微信朋友圈置顶屏蔽的人能看到吗)

  • iPhone11pro有3d touch吗(iphone11pro有3dtouch功能吗)

    iPhone11pro有3d touch吗(iphone11pro有3dtouch功能吗)

  • 买家延长收货可以延长几天(买家延长收货时间)

    买家延长收货可以延长几天(买家延长收货时间)

  • 苹果xr怎样设置自己铃声(苹果xr怎样设置耳机)

    苹果xr怎样设置自己铃声(苹果xr怎样设置耳机)

  • 网易云听歌量怎么刷(网易云听歌量怎么不动)

    网易云听歌量怎么刷(网易云听歌量怎么不动)

  • invalid syntax怎么解决

    invalid syntax怎么解决

  • wps打印预览页边距没了(wps打印预览页边距怎么把虚线调出来)

    wps打印预览页边距没了(wps打印预览页边距怎么把虚线调出来)

  • word如何生成目录(word如何生成目录和页码)

    word如何生成目录(word如何生成目录和页码)

  • 什么是Python中的闭包(什么叫python)

    什么是Python中的闭包(什么叫python)

  • HashMap源码,看我这篇就够了(hashmap resize源码)

    HashMap源码,看我这篇就够了(hashmap resize源码)

  • 出口关税税率表
  • 未认证发票有时间限制吗
  • 允许抵扣的进项税额分为哪几种情况
  • 企业所得税季度预缴纳税申报表
  • 买二手设备还需要备案吗
  • 利润表中的其他业务利润包括哪些
  • 转账支票开给个人收款人怎么写
  • 土地使用权分割转让依据
  • 存货可变现净值与成本孰低 考虑销量吗
  • 没有增值税发票怎么出口
  • 社保基数与个税缴纳基数一致
  • 滞留票是什么意思
  • 进项发票不够如何避税
  • 如何理解“占应纳税额10%以上”?
  • 个体户哪种税率最低
  • 员工探亲路费报销交个税吗
  • 专票可以当普票用不抵扣吗
  • 退税指导
  • 小型微利企业应纳税所得额300万
  • 技术服务费进项发票怎么做分录
  • html5 video标签
  • unsupportedfirsthd解决办法
  • 任务栏音量图标点击无反应
  • php parse_url
  • linux系统中文输入法切换不出来
  • 销售费用的类型
  • hipsdaemon.exe是什么
  • 第4章 数据处理思维导图
  • 期间费用为何要摊销
  • 建筑企业安装费计入什么科目
  • vue-introjs
  • nginx怎么运行php
  • 应收账款属于会计的哪个要素
  • 农产品免税发票可以抵扣增值税吗
  • 还银行贷款怎么做凭证
  • 资金账簿印花税怎么算
  • 支付网银年服务费
  • 以前月份多扣社保吗
  • 计入固定资产成本的税费有哪些
  • Qt Port of WebKit ¶
  • python线程间通信的几种方法
  • 职工保险报账
  • 利息收入怎么入账
  • 短期股票投资售出
  • 资产负债表中没有专项储备怎么填写
  • 银行开户费属于现金流量表的哪一类
  • 促销费会计分录怎么写
  • 客户提现产生的费用计入
  • 成品油发票抵扣进项税
  • 购进固定资产没有发票怎么入账
  • 黄金珠宝加工销售怎么样
  • 房租费用计入什么现金流量
  • 城建税及教育附加税税率是多少
  • 不抵扣的进项发票需要在电子税务局操作么
  • 网上订机票怎么拿报销凭证
  • 公司申请土地建厂房
  • 计提了减值准备怎么算折旧额
  • 快递费专票可以报销吗
  • 取得投资时支付的相关税费
  • 企业之间土地交易
  • 微软桌面 ios
  • 清除windows10登录密码
  • 将哪一linux文件系统引入
  • WebProxy.exe - WebProxy是什么进程
  • windefault.exe - windefault是什么进程
  • ensmix32.exe进程安全吗 ensmix32进程是什么文件产生的
  • linux的链接文件
  • win7主题服务未运行怎么办
  • windows安装mq
  • win7系统和win8系统哪个好用
  • u3d怎么导入贴图
  • jquery 定位
  • meta-inf文件夹在哪
  • 安卓xml存储方式
  • 23种设计模式全解
  • js实现继承的几种方式详述(推荐)
  • 新办纳税人是什么多久之内
  • 厦门税务机关办事大厅
  • 用户卡,税控卡怎么办理
  • 出口货物计算公式
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设