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

  • realme gt neo2怎么截屏(realmegtneo2怎么开5g)

    realme gt neo2怎么截屏(realmegtneo2怎么开5g)

  • 微信获取位置信息失败是怎么回事(微信获取位置信息失败怎么解决)

    微信获取位置信息失败是怎么回事(微信获取位置信息失败怎么解决)

  • 小米手环4复制不了门禁卡(小米手环复制的门禁卡不能用)

    小米手环4复制不了门禁卡(小米手环复制的门禁卡不能用)

  • airpods盒子能关机吗(airpods pro盒子关着可以连蓝牙吗)

    airpods盒子能关机吗(airpods pro盒子关着可以连蓝牙吗)

  • 苹果手机怎么当遥控器(苹果手机怎么当空调遥控器用)

    苹果手机怎么当遥控器(苹果手机怎么当空调遥控器用)

  • 照片编辑无法存储更改(照片编辑器无法保存)

    照片编辑无法存储更改(照片编辑器无法保存)

  • w7 32位和64位有什么区别

    w7 32位和64位有什么区别

  • qq空间被挡访客怎么设置(qq空间被挡访客怎么免费查看)

    qq空间被挡访客怎么设置(qq空间被挡访客怎么免费查看)

  • 微信收款音响s1和s2有什么区别(微信收款音响S1和F1的区别)

    微信收款音响s1和s2有什么区别(微信收款音响S1和F1的区别)

  • qq新人报道怎么弄(qq新人报道怎么弄视频)

    qq新人报道怎么弄(qq新人报道怎么弄视频)

  • 微信充值电费多久到账(微信充值电费多久到账户)

    微信充值电费多久到账(微信充值电费多久到账户)

  • 打字拼音符号怎么打(拼音打的字符)

    打字拼音符号怎么打(拼音打的字符)

  • a1722是第几代airpods(a1523和1722是一代还是二代)

    a1722是第几代airpods(a1523和1722是一代还是二代)

  • vivonex3是双扬声器吗(vivonexs是双扬声器吗)

    vivonex3是双扬声器吗(vivonexs是双扬声器吗)

  • 华为后台标准进程是几个

    华为后台标准进程是几个

  • 投影图像一边宽一边窄(投影画面一边宽一边窄)

    投影图像一边宽一边窄(投影画面一边宽一边窄)

  • 抖音小程序怎么添加(抖音小程序怎么退出登录)

    抖音小程序怎么添加(抖音小程序怎么退出登录)

  • 滴滴多久不接单会封号(滴滴多久不接单恢复新手保护期)

    滴滴多久不接单会封号(滴滴多久不接单恢复新手保护期)

  • 手机视频有杂音怎么办(手机视频有杂音对方听滋滋咋回事啊)

    手机视频有杂音怎么办(手机视频有杂音对方听滋滋咋回事啊)

  • ps身份证大小尺寸多少(ps身份证大小尺寸多少像素)

    ps身份证大小尺寸多少(ps身份证大小尺寸多少像素)

  • word图片设置透明色(word图片设置透明色不干净)

    word图片设置透明色(word图片设置透明色不干净)

  • 中医养生app如何开发(中医养生app如何下载)

    中医养生app如何开发(中医养生app如何下载)

  • 学习 Python 之 Pygame 开发魂斗罗(十)(python 如何学)

    学习 Python 之 Pygame 开发魂斗罗(十)(python 如何学)

  • React 上下文(react 上下文hooks内容存储到本地)

    React 上下文(react 上下文hooks内容存储到本地)

  • 土地原值要计入房产税计税@基数吗
  • 增值税专用发票使用规定 最新
  • 免税农产品发票开具时税率怎么选
  • 贷款利息不能抵扣进项税
  • 会计核算原则主要包括
  • 期间费用包括哪三种
  • 售后回购涉税处理
  • 向投资者借款做在什么科目
  • 银行贴现差额部分计入什么科目?
  • 预付了订金收到发票怎么做分录?
  • 公司房产出租租金如何开票?
  • 发票作废了还能认证吗
  • 金税盘和税控盘哪个好
  • 销售蔬菜水果需要什么证件
  • 使用权资产什么时候开始使用
  • 旅行社差额征收的会计处理
  • 建筑工程预收款预缴增值税的时间
  • 积分兑换内容
  • 微信收付款认证
  • 红字信息表跨越可以撤销吗
  • 系统备份工具
  • 负债的情况
  • 收到折扣发票怎么处理
  • php实现的mongodb操作类实例
  • 电脑每次开机都要选择系统怎么办
  • 公司卖旧车税务处理流程
  • PHP:imagesavealpha()的用法_GD库图像处理函数
  • thinkphp 多数据库
  • 合法票据的有哪些
  • 提坏账准备的会计分录 2022
  • php实现购物车功能源代码
  • 制造费用期末怎么结转
  • 建信信托介绍
  • 前端都有哪些
  • 印花税是1%吗
  • 现金流是什么意思举例
  • 固定资产租赁费发票增值税税率
  • 筹建期的费用计入什么科目
  • 股权出质有时间限制吗
  • 跨境电商小规模运营负责那些工作
  • 浅谈php设计模式的理解
  • 银行汇票如何背书转让
  • 销售不动产统一发票怎么没有税率
  • 清包工可以有一部分小料吗
  • 电子税务局没有增值税申报怎么办?
  • 其他债权投资的公允价值变动计入什么科目
  • 弱电工程怎么入账
  • 以前年度损益调整结转到哪里
  • 货币资金里的其他货币资金
  • 工业企业成本核算的一般程序包括下列的
  • 购买专利后有占有权吗
  • 可交换债券发行方的会计处理
  • 转让厂房如何缴纳土地增值税
  • 个体工商户和公司的优缺点
  • win8系统笔记本出现意外错误
  • 怎么提高windows7性能
  • 微软软件安装
  • solaris 修改用户 主目录
  • 电脑超频以后变得很卡
  • 高手养成计划 小说
  • win7系统每次开机都要选择用户
  • win8如何打开开始菜单
  • linux确认命令
  • linuxmain函数
  • eclipse win7
  • bootstrap不支持ie
  • web页面展示
  • css中如何设置图片大小
  • Metaio in Unity3d 教学--- 一. 搭建环境,运行官方案例
  • js prev()
  • js 进阶
  • jQuery+Ajax实现限制查询间隔的方法
  • android 网络编程
  • 人脸识别身份验证
  • 一般纳税人开租赁费发票税率是多少
  • 沈阳注销营业执照
  • 税控盘开票怎么添加新商品
  • 大同税务局官网录取名单
  • 小规模纳纳税人
  • 重庆电子税务局怎么开电子发票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设