当前位置: 首页 > news >正文

redux 结合 @reduxjs/toolkit 的使用

1,使用步骤

使用React Toolkit 创建 counterStore(store目录下) --> 为React注入store(src下面的index) --> React组件使用store中的数据(组件)

2,例如下面有一个简单加减的案例

先来看一下项目目录

counterStore代码:

import { createSlice } from '@reduxjs/toolkit'const counterStore = createSlice({// 模块名称独一无二name: 'counter',// 初始数据initialState: {count: 1},// 修改数据的同步方法reducers: {increment (state) {state.count++},decrement(state){state.count--}}
})
// 结构出actionCreater
const { increment,decrement } = counter.actions// 获取reducer函数
const counterReducer = counterStore.reducer// 导出
export { increment, decrement }
export default counterReducer

store下面 index 的代码:

import { configureStore } from '@reduxjs/toolkit'import counterReducer from './modules/counterStore'export default configureStore({reducer: {// 注册子模块counter: counterReducer}
})

src下面index 的代码:

import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App'
// 导入store
import store from './store'
// 导入store提供组件Provider
import { Provider } from 'react-redux'ReactDOM.createRoot(document.getElementById('root')).render(// 提供store数据<Provider store={store}><App /></Provider>
)

App的代码:

import { useSelector, useDispatch } from 'react-redux'
import {decrement,increment} from './store/modules/counterStore'function App(){const dispatch = useDispatch()// 错误使用// const count = useSelector(state=>state.counter)// 正确使用const {count} = useSelector(state=>state.counter)return (<div><button onClick={()=>dispatch(decrement())}>-</button><h1>{count}</h1><button onClick={()=>dispatch(increment())}>+</button></div>);
}export default App;

页面是这样的,点击加减数字就会改变了

http://www.lryc.cn/news/522321.html

相关文章:

  • tui-editor报错
  • 运行fastGPT 第二步 安装宝塔面板 用于管理安装docker和其文件
  • 常见好用的PHP CMS开源系统有哪些?
  • 【排错记录】免密、nginx、cgroup、sshd
  • 浅谈云计算19 | OpenStack管理模块 (上)
  • LabVIEW 程序中的 R6025 错误
  • 【认识油管头部频道】ep5 “5-Minute Crafts”——DIY 和生活技巧
  • HarmonyOS应用开发者初级认证最新版– 2025/1/13号题库新版
  • improve-gantt-elastic(vue2中甘特图实现与引入)
  • 【k8s面试题2025】1、练气期
  • SpringBoot源码解析(七):应用上下文结构体系
  • SpringSecurity-前后端分离
  • sparkRDD教程之基本命令
  • Linux:SystemV通信
  • C#上位机通过CAN总线发送bin文件
  • CV 图像处理基础笔记大全(超全版哦~)!!!
  • 2-Kbengine+Unity3D多人在线游戏DEMO源码架构分析
  • Vue.js组件开发-如何实现表头搜索
  • lerna使用指南
  • spark,读取和写入同一张表问题
  • iOS - TLS(线程本地存储)
  • node.js项目依赖关系分析工具 Depazer 的使用
  • QT 如何禁止QComboBox鼠标滚轮
  • 理解CPU负载与使用率
  • 浅谈计算机网络01 | SDN数据平面
  • 《Java开发手册》核心内容
  • 采用海豚调度器+Doris开发数仓保姆级教程(满满是踩坑干货细节,持续更新)
  • 通过将模型权重的矩阵表示为低秩矩阵,可以减少需要调整的参数数量,通俗易懂的解释,不懂你爬网线打我
  • Java并发编程——线程池(基础,使用,拒绝策略,命名,提交方式,状态)
  • DilateFormer: Multi-Scale Dilated Transformer for Visual Recognition 中的空洞自注意力机制