在React中通过Redux Toolkit TypeScript使用Redux仓库

参考网址:入门 Redux | Redux 中文官网        

Redux 是一个用于 JavaScript 应用程序的状态管理库。它简单来说就是管理应用程序的状态。

Redux Toolkit TypeScript 提供了一种现代化且类型安全的方式来使用 Redux,是开发复杂前端应用时的一个强大工具

第一步 安装依赖包

# npm
npm install @reduxjs/toolkit react-redux
 
# yarn
yarn add @reduxjs/toolkit react-redux

第二步 在src页面里面创建一个(store)文件夹   里面包含index.js 和 module文件夹

准备工作已经完毕下面正式开始操作

定义根 State 和 Dispatch 类型

import { configureStore } from '@reduxjs/toolkit'

// 引入module文件夹下的js文件
import Table = './module/table.js'

const store = configureStore({
  reducer: {
    table:Table   //table是我自定义的 reducer 函数  引入Table里面的方法
  }
})

//RootState 是一个对象,包含了 table 状态的类型
export type RootState = ReturnType<typeof store.getState>

// Redux store 的 dispatch 函数用于分发 action 到 reducers,触发状态的更新。
export type AppDispatch = typeof store.dispatch

定义 Hooks 类型    

在src下面创建一个utils/hooks.ts文件

import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux'

// 把RootState跟AppDispatch引入
import type { RootState, AppDispatch } from '../store/index'


// 在整个应用程序中使用,而不是简单的 `useDispatch` 和 `useSelector`
export const useAppDispatch: () => AppDispatch = useDispatch
export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector

useAppDispatch 是 react-redux 提供的用于获取 Redux dispatch 函数的 React 钩子。在这里,通过 export const useAppDispatch: () => AppDispatch = useDispatch; 将 useDispatch 导出并赋予类型 AppDispatch,即 Redux store 的 dispatch 函数的类型。这样做的好处是,在整个应用程序中可以使用 useAppDispatch 来获取类型安全的 dispatch 函数,而不需要每次都显式地调用 useDispatch

我对useAppDispatch的理解就是引用store/module/table.js下的方法并进行处理

        useAppSelector的理解就是把仓库里的数据给拿到页面上来进行使用

定义 slice state 和 action 类型

在src/module/table.js中搭建

import { createSlice } from '@reduxjs/toolkit'

const tableSclice = createSlice({
  name: 'table',
  // 初始数据
  initialState: {
    
  },
  //修改数据的方法  可以直接去修改它
  reducers: {
    //方法
  }
})

//导出 按需导出actions 和 reducer
export const {  } = tableSclice.actions

export default tableSclice.reducer

最后在全局引入模块

  • 从 ./store 导入 store,这是我的 Redux store 中的设置。
  • 从 react-redux 中导入 Provider,用于将 Redux 与 React 集成
  • <Provider store={store}>将 Redux 的 store 包装在我的 <App /> 组件外部,以便在整个应用程序中提供 Redux 的状态。

使用方法

搭建工作完成之后就该对他进行使用了

先在页面中引入useAppDispatch

再获取 useAppDispatch 钩子返回的 AppDispatch 类型的 dispatch 函数

addList就是table.js下的方法  简单来说就是把dataList这个数据放到addList这个方法里面进行处理

table.js文件  在addList方法里处理完后按需导出actions

最后再利用useAppSelector在页面上使用

这样就实现了通过useAppDispatch把数据存放到store里面,然后在通过useAppSelector把存放在store里面的数据拿出来

在reducers方法里面可以对数据进行处理,比如增删改查等之类的都可以进行处理,想用的时候直接拿出来

        这样我们能够通过更少的代码实现更多的功能,减少了样板代码和手动类型定义的工作量。这不仅提高了开发效率,还确保了代码的可读性、可维护性和可扩展性,从而提升了整体的代码质量。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值