首页 > 其他分享 >Redux tooltik的使用步骤

Redux tooltik的使用步骤

时间:2024-05-31 13:58:07浏览次数:15  
标签:const 步骤 dispatch state export tooltik import Redux any

1.创建react项目之后安装redux和redux-toolkit

npm install redux react-redux

npm install @reduxjs/toolkit

2.创建store

用configurestore创建一个库,并导出

import { configureStore } from '@reduxjs/toolkit';
import counterSlice from './counterSlice'
export const store = configureStore({
  reducer: {counter:counterSlice},
});

3.把store通过provider从顶层注入整个app

import "./App.css";
import { Provider } from "react-redux";
import { store } from "./store";
import Routers from "./router";

const App = () => {
  return (
    <Provider store={store}>
      <div className="App">
        <header className="App-header">
          <Routers/>
        </header>
      </div>
    </Provider>
  );
};
export default App;

4. 使用 createSlice 函数创建 slices,它将相关的 actions 和 reducers 组合在一起。并且导出action和reducer

import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
import { fakeFetch } from './api/fakeFetch';
export const fakeFetchCopy: any=createAsyncThunk("ceshi",async(count)=>{
  const res=await fakeFetch(count)
  return res
})
export const counterSlice = createSlice({
  name: 'counter',
  initialState: {
    value: 0,
  },
  reducers: {
    increment: (state,action: any) => {
      console.log(action)
      state.value =state.value+action.payload+1;
    },
    decrement: (state) => {
      state.value -= 1;
    },
    // 其他reducers...
  },
  extraReducers:(builder)=>{
    builder.addCase(fakeFetchCopy.fulfilled,(state,action)=>{
      state.value=action.payload as number
    })
    
  },
});
// 手写异步处理中间件
export const addAsyncThunk=(num: number)=>async(dispatch: any,getState: any)=>{
    const res: any=await fakeFetch(num)
    console.log(res,'res')
    if(getState().counter.value>0){
      dispatch(increment(50 as never))
    }
}

// 导出actions
export const { increment, decrement } = counterSlice.actions;

// 导出reducer
export default counterSlice.reducer;

5.把创建出来的slices放到第二步的reducer中,就完成了整个store的配置

6.使用store中的值,用useSelector导出在counterSlice中的方法,再引入usedispatch方法

然后在事件中使用dispatch(increment(value))改变store,就完成整个流程

import { useSelector, useDispatch } from 'react-redux';
import { increment, decrement,fakeFetchCopy,addAsyncThunk} from '../counterSlice';

const CounterComponent = () => {
  
  const count = useSelector((state:any) => state.counter.value);
  const dispatch = useDispatch();
  return (
    <div>
      <button onClick={() => dispatch(increment(100 as never))}>+</button>
      <span>{count}</span>
      <button onClick={() => dispatch(decrement())}>-</button>
      <button onClick={() => dispatch(fakeFetchCopy(count))}>异步操作</button>
      <button onClick={() => dispatch(addAsyncThunk(count)as any)}>异步操作2</button>
    </div>
  );
};

export default CounterComponent;

7.在slice切片中通过creatasyncthunk添加中间件(加入异步请求),并把这个异步请求暴露出去供event事件使用,同时在Slice切片组件中新增extraReducers来处理异步请求的结果(请求成功怎么操作,请求失败怎么操作)

还可以手写中间件

8.还可以手写中间件,高阶函数,第二个函数里面有dispatch和getstate函数,通过操作getstate获取store里面的值,通过dispatch操作切片里面的函数,具体在第4步中有手写中间件的代码

export const addAsyncThunk=(num: number)=>async(dispatch: any,getState: any)=>{
    const res: any=await fakeFetch(num)
    console.log(res,'res')
    if(getState().counter.value>0){
      dispatch(increment(50 as never))
    }
}

由此可以完整的完成整个rtk的使用配置

标签:const,步骤,dispatch,state,export,tooltik,import,Redux,any
From: https://blog.csdn.net/m0_60614534/article/details/139347224

相关文章

  • Ubuntu22.04安装YOLOv5,anaconda,cuda,pycharm步骤
     主要是牛马打工人最近突然接到通知,说要做一个人脸识别的功能,然后我作为“nm”就被迫接了,有一说一,这玩意儿真是ex,因为我笨,看不懂,而且大多数都是因为,真nm服了,为了以后的打工牛,少走弯路,我就想着做一个步骤一.先准备准备(在主目录下)因为看教程时总是纠结安装的路径,之前看教......
  • windows镜像虚拟机创建共享文件夹详细步骤 -- 和本地电脑传输文件
    第一步:关闭客户机第二步:右击“虚拟机名称”或菜单栏的“虚拟机”–>“设置”网络适配器选择NAT或者其他的都可以来到“选项”,启用共享文件夹,具体如下图:点击添加,添加主机文件夹。然后确定 第三步:开启虚拟机,打开虚拟机内的“我的电脑”,如果有下图所示的网络共享文件夹,则......
  • Django 里如何使用 sqlite (操作步骤)
    下面是在VSCode里进行操作1.安装SQLite的Extension2.在models.py里做修改文件修改如下fromdjango.dbimportmodels#Createyourmodelshere.#类似这样创建一个classclassUserInfo(models.Model):username=models.CharField(verbose_name="......
  • 虚拟海外仓用什么系统最好?5个步骤帮你选出适合自己仓库的WMS系统
    面对国际市场越来越大的仓储需求,虚拟海外仓的受众还是非常广泛的。不过很多经营虚拟海外仓的企业往往都会陷入管理混乱,低效的怪圈。要想突破这个经营的瓶颈,快速发展企业,选择一个适合自己的海外仓WMS系统是个不错的选择。1.虚拟海外仓在管理上的核心需求是什么对于虚拟海外仓......
  • 外部中断配置步骤
    (1)禁止CPU中断,初始化PIE中断控制寄存器和PIE中断向量表IER=0x0000;IFR=0x0000;InitPieCtrl();InitPieVectTable();(2)使能IO口时钟,配置IO口为输入(3)设置IO口与中断线的映射关系GpioIntRegs.GPIOXINT1SEL.bit.GPIOSEL=12;  //XINT1是GPIO12(4)指定中断向量表中断服......
  • 发布ClickOnce应用程序步骤与URL传参应用
    目录一、ClickOnce应用程序发布配置二、URL传参应用 一、ClickOnce应用程序发布配置签名-为ClickOnce清单签名→取消勾选签名-为程序集签名→取消勾选安全性-启用ClickOnce安全设置→勾选安全性-这是完全可信的应用程序→勾选发布-发布文件夹位置......
  • 如何成为一名黑客?小白必学的12个基本步骤
    如何成为一名黑客?小白必学的12个基本步骤【黑客进阶资源资料包】黑客攻防是一个极具魅力的技术领域,但成为一名黑客毫无疑问也并不容易。你必须拥有对新技术的好奇心和积极的学习态度,具备很深的计算机系统、编程语言和操作系统知识,并乐意不断地去学习和进步。如果你想成为......
  • 如何免费使用GPT-4o?如何升级GPT4.0 Turbo?(内附详细步骤教程)
    01GPT-4o是什么?5月中旬,OpenAI发布了惊艳的GPT-4o。经过体验,我深感其强大,中文能力尤为突出,速度也远超目前的GPT-4。GPT-4o深夜发布!Plus免费可用!|OpenAI发布GPT-4o一夜创历史,超越所有AI语音助手!!早在5月11日,Sam在推文中透露:OpenAI并没有推出GPT-5或新的搜索......
  • 使用nodejs安装并使用vue操作步骤
    1.下载安装nodejs官网下载nodejs并安装,我这边选择Windows的20版本下载地址:https://nodejs.org/en/download/prebuilt-installer安装完成后进入cmd窗口,使用node-v命令检查是否安装成功 如上图所示安装成功 2.配置npm的全局安装路径(npm,nodepakaagemanager,是nodejs的软......
  • MAC电脑设置charles,连接手机的步骤说明(个人实际操作)——参考
    参考网址:https://blog.csdn.net/GDYY3721/article/details/131980382 注意;  IOS   1.浏览器输入chls.pro/ssl,安装证书到本地。   2、在手机设置->通用->关于本机->证书信任设置 中打开信任。(***这一步没做将造成不能上网***)       ......