位置: 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 绑定子组件属性)

  • 未取得房屋产权证租赁
  • 软件维护费属于费用还是资产
  • 从事股权投资业务如何界定
  • 工业企业销售成本如何计算
  • 政府补助应计入
  • 工程项目因故终止施工的建设单位应办理手续0
  • 按计划成本发出原材料怎么算
  • 代扣代缴个人所得税计入哪个科目
  • 个人经营所得核定征收超过多少要交税
  • 开增值税专用发票需要合同吗
  • 物业签订的合同
  • 广告公司可以开维修费吗
  • 财务报表季度申报资产负债表怎么填
  • 环卫公司增值税税率
  • 简易征收是优惠政策吗
  • 小型微利企业核定征收
  • 建安企业增值税税率是多少
  • 股权代持分红免税吗
  • 城市维护建设税减免税优惠政策
  • 结转费用的会计分录
  • 公司客户招待费用标准
  • 装载u盘
  • win7系统无法启用网络发现
  • win10系统更新出现错误代码
  • newdot.exe - newdot是什么进程 有什么用
  • 视同销售的八种情况下会计分录怎么做?
  • 年终奖发放问题
  • PHP:json_last_error_msg()的用法_JSON函数
  • 设计费包含概算费用吗
  • 如何计算企业年度人均产值
  • 房贷计算器搜房网
  • thinkphp yii
  • cuda安装步骤
  • torch.nn.function
  • 图像分割csdn
  • phpcms添加内容
  • 汽车以旧换新怎么操作
  • 交易性金融资产的入账价值
  • 工程发票可以开清单吗?
  • 织梦如何添加浮动广告
  • python如何反编译
  • 设备安装收入税率
  • 查财务报表的网站有哪些
  • 工会经费申报的计税比率是
  • 车辆购置税能否融资租赁
  • 房产出租税率是多少
  • 盈余公积年初和年末没有变化
  • 农产品收购发票使用范围
  • 企业所得税债务重组一般性税务处理
  • 自用房产税计入什么科目
  • 材料款已付,发票没来
  • 应付账款扣款分录
  • 年金现值和年金终值的例题
  • 税前扣除怎么理解
  • 公司从员工工资扣水电费
  • 维保业务怎么开展
  • 商品折扣计入哪个科目
  • 小规模收的专票以后能抵扣吗
  • 分公司内部管理模式
  • 增值税普通发票查询
  • 实发工资高于工资表
  • sqlserver bulkcopy
  • Linux下Mysql5.7.19卸载方法
  • windowsxp开机启动项在哪里设置
  • windowsserver2003ftp服务器怎么搭建
  • hipo.dll是什么
  • ubuntu 电子书
  • 电脑开机后出现win7画面后一直黑屏
  • win10文件夹右上角搜索不能用
  • win10桌面右键菜单变宽了
  • opengl入门视频教程
  • shell监控http脚本
  • 安卓回调接口怎么写
  • 安卓自定义app
  • js代码测试工具
  • 税务局通知自查该怎么办理
  • 境外所得税额扣除的计算
  • 税控系统减免税报表里
  • 股权收购的好处
  • 昱铭这个公司名字怎么样
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设