位置: IT常识 - 正文

Redux工具包(一) - Redux Toolkit的基本使用(redux-tookit)

编辑:rootadmin
Redux工具包(一) - Redux Toolkit的基本使用 文章目录Redux工具包的使用Redux Toolkit介绍Redux Toolkit基本使用Redux工具包的使用Redux Toolkit介绍

推荐整理分享Redux工具包(一) - Redux Toolkit的基本使用(redux-tookit),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:redux的使用流程,redux-tookit,redux/toolkit,redux-toolkit,redux tooltik,redux tool,redux-tookit,redux-toolkit,内容如对您有帮助,希望把文章链接给更多的朋友!

Redux Toolkit 是官方推荐的编写 Redux 逻辑的方法。

在前面我们学习Redux的时候应该已经发现,redux的编写逻辑过于的繁琐和麻烦。

并且代码通常分拆在多个文件中(虽然也可以放到一个文件管理,但是代码量过多,不利于管理);

Redux Toolkit包旨在成为编写Redux逻辑的标准方式,从而解决上面提到的问题;

在很多地方为了称呼方便,也将之称为“RTK”;

安装Redux Toolkit:npm install @reduxjs/toolkit react-redux

Redux Toolkit的核心API主要是如下几个:

configureStore: 包装createStore以提供简化的配置选项和良好的默认值。它可以自动组合你的 slice reducer,添加你提供 的任何 Redux 中间件,redux-thunk默认包含,并启用 Redux DevTools Extension。

createSlice: 接受reducer函数的对象、切片名称和初始状态值,并自动生成切片reducer,并带有相应的actions。

createAsyncThunk: 接受一个动作类型字符串和一个返回承诺的函数,并生成一个pending/fulfilled/rejected基于该承诺分 派动作类型的 thunk

Redux Toolkit基本使用Redux工具包(一) - Redux Toolkit的基本使用(redux-tookit)

configureStore用于创建store对象,常见参数如下:

reducer: 将slice中的reducer可以组成一个对象传入此处;

middleware:可以使用参数,传入其他的中间件(自行了解);

devTools:是否配置devTools工具,默认为true;

import { configureStore } from "@reduxjs/toolkit"// 导入reducerimport counterReducer from "./features/counter"const store = configureStore({ reducer: { counter: counterReducer }, // 例如可以关闭redux-devtool devTools: false})export default store

createSlice主要包含如下几个参数:

name:用户标记slice的名词

在之后的redux-devtool中会显示对应的名词;

initialState:初始化值

第一次初始化时的值;

reducers:相当于之前的reducer函数

对象类型,对象中可以添加很多的函数;

函数类似于redux原来reducer中的一个case语句;

函数的参数:

参数一: state, 当前的state状态参数二: 传递的actions参数, actions有两个属性, 一个是自动生成的type, 另一个是传递的参数放在payload中;

createSlice返回值是一个对象,包含所有的actions;

import { createSlice } from "@reduxjs/toolkit"const counterSlice = createSlice({ name: "counter", initialState: { counter: 99 }, reducers: { // 直接对actions解构拿到payload changeNumber(state, { payload }) { state.counter = state.counter + payload } }})// reducers当中的方法会放在counterSlice的actions中, 用于派发actionexport const { changeNumber } = counterSlice.actions// 注意: 导出的是reducer, 用于在index.js中对reducer进行组合export default counterSlice.reducer

接下来使用store中的counter数据和修改counter的操作和之前一样, 借助于react-redux库进行连接使用

import React, { PureComponent } from 'react'import { connect } from 'react-redux'import { changeNumber } from '../store/features/counter'export class Home extends PureComponent { changeNumber(num) { this.props.changeNumber(num) } render() { const { counter } = this.props return ( <div> <h2>Home</h2> <h2>当前计数: {counter}</h2> <button onClick={() => this.changeNumber(5)}>+5</button> <button onClick={() => this.changeNumber(10)}>+10</button> </div> ) }}// 映射要使用的store中的数据const mapStateToProps = (state) => ({ counter: state.counter.counter})// 映射要派发的方法const mapDispatchToProps = (dispatch) => ({ changeNumber(num) { dispatch(changeNumber(num)) }})export default connect(mapStateToProps, mapDispatchToProps)(Home)
本文链接地址:https://www.jiuchutong.com/zhishi/298886.html 转载请保留说明!

上一篇:torch.cuda常用指令(torch.cuda.is_available())

下一篇:vue3 子组件上绑定(v-model=“xx“) 父组件传过来的值后报错(vue 绑定子组件属性)

  • microsoft start任务栏怎么关闭(微软任务管理软件)

    microsoft start任务栏怎么关闭(微软任务管理软件)

  • 苹果自动开机如何设置(苹果自动开机在哪里设置方法)

    苹果自动开机如何设置(苹果自动开机在哪里设置方法)

  • 小米手机广告怎么关闭(小米手机广告怎么彻底关闭)

    小米手机广告怎么关闭(小米手机广告怎么彻底关闭)

  • 华为mate30不能用谷歌服务吗(华为mate30不能用谷歌怎么办)

    华为mate30不能用谷歌服务吗(华为mate30不能用谷歌怎么办)

  • 华为悬浮球怎么打开(华为悬浮球怎么锁屏)

    华为悬浮球怎么打开(华为悬浮球怎么锁屏)

  • 小爱同学3.0版本什么时候更新(小爱同学3.0版本下载安装)

    小爱同学3.0版本什么时候更新(小爱同学3.0版本下载安装)

  • 联通pt952g光猫是千兆的吗

    联通pt952g光猫是千兆的吗

  • 快手怎么变成新账号了(快手怎么变成新账号)

    快手怎么变成新账号了(快手怎么变成新账号)

  • oppo手机怎么设置短信拦截(oppo手机怎么设置下面三个按键)

    oppo手机怎么设置短信拦截(oppo手机怎么设置下面三个按键)

  • 小天才电话手表怎么下载作业帮(小天才电话手表怎么玩游戏)

    小天才电话手表怎么下载作业帮(小天才电话手表怎么玩游戏)

  • 无线耳麦是干什么用的(无线耳麦怎么用?无线的)

    无线耳麦是干什么用的(无线耳麦怎么用?无线的)

  • 怎么用天猫精灵放手机里的歌(怎么用天猫精灵控制家电)

    怎么用天猫精灵放手机里的歌(怎么用天猫精灵控制家电)

  • 选定多个连续文件或文件夹的操作过程是?(选定多个连续文件,先单击第一项)

    选定多个连续文件或文件夹的操作过程是?(选定多个连续文件,先单击第一项)

  • 个人公众号每天只能发一篇吗(个人公众号每天可以发布多少文章)

    个人公众号每天只能发一篇吗(个人公众号每天可以发布多少文章)

  • 华为无线耳机怎么开机(华为无线耳机怎么配对)

    华为无线耳机怎么开机(华为无线耳机怎么配对)

  • 苹果网易云音乐怎么悬浮歌词(苹果网易云音乐怎么设置铃声)

    苹果网易云音乐怎么悬浮歌词(苹果网易云音乐怎么设置铃声)

  • 运营网络自动暂停是怎么回事(公司送给员工开工礼物)

    运营网络自动暂停是怎么回事(公司送给员工开工礼物)

  • 苹果11pro充电要多久(苹果11pro充电要多久充满)

    苹果11pro充电要多久(苹果11pro充电要多久充满)

  • 苹果bs机啥意思(苹果 bs机什么意思)

    苹果bs机啥意思(苹果 bs机什么意思)

  • 固态硬盘无法读取怎么回事(固态硬盘无法读写,在pe无法格式化)

    固态硬盘无法读取怎么回事(固态硬盘无法读写,在pe无法格式化)

  • vue怎么调整字幕大小(vue字幕颜色更改)

    vue怎么调整字幕大小(vue字幕颜色更改)

  • 华为share怎么用(华为share怎么用怎么分享给电脑)

    华为share怎么用(华为share怎么用怎么分享给电脑)

  • 小米耳机如何切换歌曲(小米耳机如何切换到双耳)

    小米耳机如何切换歌曲(小米耳机如何切换到双耳)

  • b站好友是互相关注吗(b站的朋友怎么相互称呼)

    b站好友是互相关注吗(b站的朋友怎么相互称呼)

  • pr剪辑里怎么瘦脸(pr视频怎么瘦身)

    pr剪辑里怎么瘦脸(pr视频怎么瘦身)

  • 巧影怎么找不到色度键(巧影为什么总是打不开)

    巧影怎么找不到色度键(巧影为什么总是打不开)

  • 怎么修改表格格式(怎么修改表格格式不变)

    怎么修改表格格式(怎么修改表格格式不变)

  • 设备检验检测
  • 增值税的特点是实行
  • 自然人密码怎么注册
  • 通货膨胀的含义及通货膨胀率的计算
  • 公允价值变动损益属于当期损益吗
  • 自产产品用于业务宣传确认收入吗
  • 税控减免税结转怎么操作
  • 收到利息计入哪个会计科目
  • 旧设备变现损失抵减所得税怎么算
  • 增值税普通发票怎么开
  • 招待费的住宿费
  • 物业管理费属于政府购买服务吗
  • 房地产发票冲红的步骤
  • 积分返现活动
  • 非上市公司股权转让
  • 税控盘没清盘怎么处罚
  • 会计调账必须写说明吗
  • 外地预缴增值税可以抵本地增值税
  • 跨年冲暂估如何做账?
  • mac dock不见了
  • 电脑管家系统异常要修复吗
  • PHP+Mysql+jQuery查询和列表框选择操作实例讲解
  • php测试成功的邮件是什么
  • 预收和应收怎么转换
  • 销售产品是销项税额还是进项税额
  • 企业所得税扣除标准表
  • 取得增值税发票的认证期限是多久?
  • 生产企业外销收入账务处理
  • AI:ModelScope(一站式开源的模型即服务共享平台)的简介、安装、使用方法之详细攻略
  • yolov5输出result
  • 非贸付汇代扣代交哪些税
  • php zmq
  • 发生广告费的会计分录
  • js获取本机ip地址
  • 华为云从入门到实战电子版
  • 合同补充协议印花怎么写
  • 利润表本年累计金额和本期金额有什么区别
  • 筹备期间费用怎么做分录
  • 支付广告费没有票怎么入账
  • 织梦相关文章调用
  • 总结帝国cms内容是什么
  • 在sysservers中找不到服务器
  • 劳务发票进什么科目
  • 报废产品账务的处理方法
  • 销售收入五步法
  • 递延所得税如何理解
  • 固定资产变动方式名称
  • 职工辞退福利是否要申报个税
  • 我国居民企业判断标准
  • 单位之间借款还款怎么写
  • 销售产品收到现款120元是什么制
  • 职工薪酬的范围及内容
  • 损益表格式 最新
  • 固定资产原价是指固定资产的什么
  • 出售固定资产属于什么收入
  • dnfxp系统能玩吗
  • linux获取操作系统版本
  • windows server 2008 r2 iis
  • linux磁盘管理fdisk
  • avc用什么打开
  • 开机提示windows即将过期
  • 装win8还是win10
  • mblme是什么进程
  • keyemain.exe是什么
  • win81和win10
  • 中小型企业的认定标准2023
  • win10更新后有线网络无法使用
  • 不格式化更改盘符
  • win8.1怎么重新装系统
  • js设置窗口位置
  • shell脚本转换文件编码
  • linux shell脚本命令
  • nodejs xhr
  • vue微信分享功能
  • android内存泄露监测
  • windows捕获文件夹
  • python文件与目录操作
  • 纳税申报表如何看销售额
  • 2021年社保又涨价了
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设