首页 > 其他分享 >Redux Toolkit——基操

Redux Toolkit——基操

时间:2022-10-14 15:11:48浏览次数:40  
标签:基操 redux const Toolkit react export import Redux store

redux-toolkit是redux的升级版

安装

npm install @reduxjs/toolkit
// 在react中还需要搭配react-redux使用
npm install react-redux

模块的写法

// counterReducer.ts

import { createSlice, payloadAction } from '@reduxjs/tookit'
export const counterSlice = createSlice({
  name: 'counter',
  initialState: {
    num: 0
  },
  reducers: {  // 类似vuex的commit;reducers,reducers,reducers,不是reducer
    // 写法类似vuex的commit,第一个参数默认是state,第二个是自己传的参数,
    // payloadAction是内置用于ts情况下类型校验的,把参数包裹起来
    increment(state, value: payloadAction<number>) {
      state.num += value
    }
  }
})
// 导出
export const { increment } = counterSlice.action
export default counterSlice.reducer

创建仓库

// stroe/index.ts
import { configureStore } from '@reduxjs/tookit'
// 创建仓库configureStore 
const store = configureStore({
  // 模块,类似vuex的module
  reducer: {
    counter: counterReducer
  }
})
// 导出
export type RootState = ReturnType<typeof store.getState>  // 这两个是为ts定义类型用的
export type AppDispatch = typeof store.dispatch
// 这个重要
export default store

通过react-redux在组件中使用redux

1. 首先要在react应用的根组件provider

// index.jsx
import store from './store'
import { Provider } from 'react-redux'
root.render(
  <React.strictMode>
    <Provider store={store}>
      <App />
    </Provider>
  </React.strictMode>
)

2. 然后才能在组件中使用

// 这两个是react用个来使用/操作redux的
import { useSelector, useDispatc } from 'react-redux'
import { increment } from '@/store/couterReducer'
export default function App() {
  const num = useSelector((state: RootState) => state.counter.num)
  const dispatch = useDispatch()
  return (
    <>
      <p>{num}</p>
      <button onClick={() => {
        dispatch(increment())  //这就是触发reducer更改store的方法
      }}> increment </button>
    </>
  )
}

标签:基操,redux,const,Toolkit,react,export,import,Redux,store
From: https://www.cnblogs.com/Lilc20201212/p/16791544.html

相关文章

  • react中使用redux
    -  redux不是facebook团队开发的,不是只有react才可以用,angla、vue也可以用,不过vue中有专业的状态管理插件,vuex。vue3也出了一个pina。vue中并不用redux。使用redux的......
  • React中使用react-redux、@reduxjs/toolkit状态管理工具
    react-redux,@reduxjs/toolkitreact-redux是的官方ReactUI绑定层,它允许您的React组件从Redux存储中读取数据,并将操作分派到存储以更新状态。ReactRedux8.x......
  • redux模块拆分——start状态模块化——connect高阶函数模块化——Action函数返回对象
    redux模块拆分使用redux库中提供的​​combineReducers​​方法,可以将多个拆分reducer函数合并成统一的reducer函数,返回一个新reducer,提供给createStore来使用。import{co......
  • react-redux——使用redux——使用react-redux这个扩展简化操作
    安装Reduxredux不是内嵌在react框架中,使用时需要手动去安装yarnaddredux核心概念......
  • 四、react-redux(demo可对比redux)
    react-redux调用关系: react-reducdemo1.安装插件:npminstall--savereact-redux2.创建项目:demo效果还是和redux的demo是一样的 demo目录结构:src下新增了containers文......
  • Percona-Toolkit系列(23) --- pt-sift
    pt-siftpt-sift:​​官方地址​​说明用途:用于分析、查看​​pt-stalk​​​命令产生的文件内容,并生产概要信息,然后通过输入不同的命令查看不同的内容。如,输入​​m​​​,查......
  • redux原理是什么
    前言相信很多人都在使用redux作为前端状态管理库进去项目开发,但仍然停留在“知道怎么用,但仍然不知道其核心原理”的阶段,接下来带大家分析一下redux和react-redux两个库的......
  • # react 使用 redux 状态管理器
    react使用redux状态管理器学习资料英文文档:https://redux.js.org/中文文档:http://www.redux.org.cn/Github地址:https://github.com/reactjs/redux是什么redux......
  • 四、react-redux(demo可对比redux)
    react-redux调用关系: react-reducdemo1.安装插件:npminstall--savereact-redux2.创建项目:项目模板:https://www.cnblogs.com/lixiuming521125/p/16698004.html......
  • 第 24 题:聊聊 Redux 和 Vuex 的设计思想
    共同点首先两者都是处理全局状态的工具库,大致实现思想都是:全局state保存状态---->dispatch(action)------>reducer(vuex里的mutation)---->生成newState;整个状态为同步......