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>
</>
)
}

最新文章

  1. 四、jquery中的事件与应用
  2. SSH框架简化
  3. npm 加速方案
  4. php 单态设计模式
  5. IE浏览器模式设置
  6. JSTL 的 if else : 有 c:if 没有 else 的处理
  7. 判断i在字符串中出现的次数(2016.1.12P141-1)
  8. spring3定时器简单配置
  9. Jupyter增加内核
  10. How to Be Good at Mathematics
  11. Linux进程间通信——使用数据报套接字
  12. QT显示机制(7篇相关文章)
  13. art中的部分内容,留着慢慢研究
  14. 会话管理(Cookie/Session技术)
  15. Redis4.0.0 安装及配置 (Linux — Centos7)
  16. dfs_SPFA 判负环
  17. Springmvc 视频学习地址
  18. .NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了
  19. sitecore 8.2 item属性查询
  20. 关于Oracle归档的一些操作

热门文章

  1. Tesseract图片文字识别
  2. Median String
  3. IP转换
  4. 简单添加table线条
  5. IIS SSL认证流程&amp; url重写
  6. Electron 应用图标修改
  7. Matplotlib 轴标签和标题
  8. C语言中的malloc、new、memset函数解析
  9. ES6的总结的一些数组、字符串方法
  10. 2022-05-11内部群每日三题-清辉PMP