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

  • 莹石云视频怎么连接另一个手机(萤石云视频怎么连接手机)

    莹石云视频怎么连接另一个手机(萤石云视频怎么连接手机)

  • nova5pro有红外吗(nova5pro带红外功能吗)

    nova5pro有红外吗(nova5pro带红外功能吗)

  • 微信群共享文件怎么看(微信群共享文件在哪里打开)

    微信群共享文件怎么看(微信群共享文件在哪里打开)

  • Word标题段填充颜色怎么设置(word标题段落填充)

    Word标题段填充颜色怎么设置(word标题段落填充)

  • 淘宝店铺红包和店铺优惠券可以同时使用吗(淘宝店铺红包和红包区别)

    淘宝店铺红包和店铺优惠券可以同时使用吗(淘宝店铺红包和红包区别)

  • b站正式会员永久的吗(b站会员永久)

    b站正式会员永久的吗(b站会员永久)

  • 加个内存条电脑会变快吗(加个内存条电脑开不了机)

    加个内存条电脑会变快吗(加个内存条电脑开不了机)

  • 手机网易云音乐歌手分类在哪(手机网易云音乐桌面歌词)

    手机网易云音乐歌手分类在哪(手机网易云音乐桌面歌词)

  • 苹果小黑点怎么关闭(苹果小黑点怎么出来)

    苹果小黑点怎么关闭(苹果小黑点怎么出来)

  • 三星s8开不了机了怎么办(三星s8开不了机插充电器没反应)

    三星s8开不了机了怎么办(三星s8开不了机插充电器没反应)

  • 微客pro是腾讯的么(微客pro官网)

    微客pro是腾讯的么(微客pro官网)

  • word怎么设置文档纸张大小(word怎么设置文本格式)

    word怎么设置文档纸张大小(word怎么设置文本格式)

  • 华为mate30怎么设置用机姿势提醒(华为mate30怎么设置动态壁纸)

    华为mate30怎么设置用机姿势提醒(华为mate30怎么设置动态壁纸)

  • 趣步置换不见了(趣步置换ght网站下载)

    趣步置换不见了(趣步置换ght网站下载)

  • 抖音关注不了是为什么(抖音刷关注网站)

    抖音关注不了是为什么(抖音刷关注网站)

  • dubbo与springcloud的区别(dubbo与springcloud区别)

    dubbo与springcloud的区别(dubbo与springcloud区别)

  • 内存插哪个槽(内存插哪一个)

    内存插哪个槽(内存插哪一个)

  • 对方删除我还能看到我的朋友圈吗(对方删除我还能转账吗)

    对方删除我还能看到我的朋友圈吗(对方删除我还能转账吗)

  • 三星S7死机怎么办(三星s7手机死机解决方法)

    三星S7死机怎么办(三星s7手机死机解决方法)

  • 华为p30辅助触控在哪(华为手机 辅助触控)

    华为p30辅助触控在哪(华为手机 辅助触控)

  • 如何利用路由器监控电脑网速?路由器分配网络带宽和限制别人网速的方法(如何利用路由器登陆花生壳)

    如何利用路由器监控电脑网速?路由器分配网络带宽和限制别人网速的方法(如何利用路由器登陆花生壳)

  • 大西洋和特内里费山脉上空的流云,西班牙加那利群岛 (© MikeMareen/iStock/Getty Images Plus)(大西洋跟太平洋有没有融为一体?)

    大西洋和特内里费山脉上空的流云,西班牙加那利群岛 (© MikeMareen/iStock/Getty Images Plus)(大西洋跟太平洋有没有融为一体?)

  • 个人所得税全年一次性奖金优惠政策
  • 不缴或少缴应纳税款的处罚措施
  • 租厂房土地使用税
  • 一般纳税人金税盘抵税会计分录
  • 劳务发票要交多少税费
  • 商品流通企业都交什么税
  • 公司租用个人房屋如何记账
  • 逐期增长量与累计增长量的关系是
  • 银行对公回单可以在家打印吗
  • 企业缴纳的社保可以税前扣除吗
  • 公司承担个人社保部分福利
  • 出租的土地使用权是无形资产吗
  • 医院员工工资表模板
  • 同一投资主体内部所属企业之间土地,房屋权属的划转
  • 应交城建税和教育费附加计算分录
  • 一个公司控股另一个公司
  • 怎么确认外购存货成本?
  • 错把费用计入固定资产次月如何调账
  • 收到投资款需要什么原始凭证
  • 虚开发票可以做进项税额转出分录吗?
  • 工会经费由谁审批
  • 备用金 退款
  • 非居民企业指定扣缴合同备案
  • 应付票据属于什么类账户
  • 企业暂估收入申报,未开发票,几年以后要开票如何处理
  • 自有房屋的装修费计入长期待摊
  • 餐饮定额发票怎么征税
  • 保险企业准备金是什么
  • mac怎么保存网页上的音频
  • 增值税怎么填表
  • 在win7系统中将打开窗口拖到屏幕顶端
  • 缴税怎么入账
  • linux怎么用微信
  • 施工企业工程结算
  • PHP:rawurlencode()的用法_url函数
  • 公司比赛奖金计入什么科目
  • Chat GPT实用案例——VUE+Chat GPT实现聊天功能教程
  • 金融企业允许税前扣除的准备金
  • 基于网页的客服系统
  • 精灵烟囱的形态判断
  • php的session
  • php类的定义
  • 水利建设基金计算公式
  • 固定资产的特征有哪些
  • redishi
  • 改造后的固定资产入账价值
  • 异地工程税
  • 增值税发票跨月红冲操作流程
  • 企业的其他应付款怎么处理
  • 医疗器械和医疗耗材是一回事吗
  • 企业所得税交完了转个人
  • 企业所得税表利润总额是净利润吗
  • 固定电话机用装电池吗
  • 酒店客房收入会计分录
  • 非正常损坏的商品计入哪个会计科目
  • 产品销售收入的确认条件
  • 预付账款无法取得发票如何做账
  • Windows如何查看Mac地址
  • 下载win10 32位
  • 桌面上的软件是什么
  • reader_sl.exe - reader_sl进程有什么用.
  • windows10预览版是什么
  • win8兼容性比win7好吗
  • jsonp实现动态加载文件
  • 转换什么
  • Node.js中的http请求客户端示例(request client)
  • 封装是什么意思?
  • python过程中遇到的问题
  • js类继承的例子
  • python web ui
  • javascript学习指南
  • python教程目录
  • javascript substring的用法
  • js如何使用cookie
  • 国税网上开票怎么不显示界面
  • 怎么打印纳税申报清单
  • 北京市税务局的待遇怎么样
  • 重庆经开区属于哪个大区
  • 岗位回避什么意思
  • 新时代新思想基层医疗宣讲
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设