当前位置: 首页 > news >正文

react hooks reducer

import {useReducer}from 'react'

复杂的状态管对象中的值总会改变 不同状态不同时机使用

useState的替代方案

来源于redux中的reducer

参数变化

const [state,dispatch] = useReducer(reducer,initialState,initialAction)

参数解析:

1.reducer 函数 处理action 更新state

2. 初始状态state

3. 初始执行时被处理的action

返回值:

state 为状态值

dispatch 为更新state的方法 它接受action 作为参数

 

dispatch({

type:'reset'

})

这个方法被调用的时候 reducer方法也会被调用 并会根据action的描述去更新对应的数据

 

action

const action ={

type:"increase",

payload:{

other:"value"

// 携带的其他参数

}

}

action 转化为最新的state

reducer

action 和state的转化器

const [state,dispatch] = useReducer(reducer,initialState,initialAction)

 

// 业务中reducer 自己写

初始状态自己写

dispatch 是触发操作

const reducer = (state,action)=>{

switch(action.type){

case'reset':

return {count:state.count+1}

// 返回初始化对象值

// 最新的返回

}

}

拿到最新的state {state.count}

 

 

useContext 结合useReducer实现redux功能功能

相关文章:

  • react hooks 额外的钩子函数
  • 《程序员》杂志06年2月文章:Flash Lite挑战J2ME
  • CSDN Blog升级公告
  • koa文件上传2
  • 怎样成为一个Flash Lite Developer (开发篇)
  • Chat room help file
  • 小程序 - 使用async出现regeneratorRuntime is not defined错误 不能使用async 和await 的解决方案
  • react willReceiveProps 是深度比较 浅层拷贝 (虽然值变过来了 但是)还是会render 一次 immutable1
  • 怎样成为一个Flash Lite Developer (工具篇)
  • immutable与可变数据 不可变数据
  • 辞职:也要像个君子般离开
  • redux connect 原理解析 传入的mapstate 和mapdispatch connect()第一次执行后返回一个函数 这个函数接收到的参数是一个组件 对组件进行加工返回
  • Flash Lite 与 J2ME 分析比较
  • react dva 复习subscriptions: setup
  • pm2 pm2 --help 使用指南
  • Angular数据绑定机制
  • es6
  • hadoop集群管理系统搭建规划说明
  • HTTP 简介
  • HTTP请求重发
  • Js基础知识(一) - 变量
  • JS实现简单的MVC模式开发小游戏
  • Laravel Telescope:优雅的应用调试工具
  • Redux 中间件分析
  • 解析带emoji和链接的聊天系统消息
  • 开源SQL-on-Hadoop系统一览
  • 漂亮刷新控件-iOS
  • 前端之Sass/Scss实战笔记
  • 如何设计一个微型分布式架构?
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 找一份好的前端工作,起点很重要
  • ​如何防止网络攻击?
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • (2)nginx 安装、启停
  • (2)STL算法之元素计数
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (四)Android布局类型(线性布局LinearLayout)
  • (已解决)什么是vue导航守卫
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .NET Core WebAPI中封装Swagger配置
  • .NET 使用 XPath 来读写 XML 文件
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .Net6 Api Swagger配置
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .NET中的十进制浮点类型,徐汇区网站设计
  • /usr/bin/env: node: No such file or directory
  • :“Failed to access IIS metabase”解决方法
  • @GlobalLock注解作用与原理解析
  • @四年级家长,这条香港优才计划+华侨生联考捷径,一定要看!
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042
  • [202209]mysql8.0 双主集群搭建 亲测可用
  • [Android]使用Android打包Unity工程
  • [Apio2012]dispatching 左偏树