提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- redux状态管理
- 安装redux
- 创建文件 并使用
- 传参action
- 总结
前言
redux状态管理插件的使用
提示:以下是本篇文章正文内容,下面案例可供参考
redux状态管理
安装redux
npm install @reduxjs/toolkit react-redux
创建文件 并使用
store/index.js导入子模块
import { configureStore } from "@reduxjs/toolkit";
//子模块导入,可自定义多个
import counterStore from "./modules/counterStore";
// 创建store组合子模块
const store = configureStore({
reducer:{
counterStore,
}
})
export default store
创建子模块store/modules/counterStore.js , 可创建多个导出
import { createSlice } from "@reduxjs/toolkit";
const counterStore = createSlice({
name: "todos",
// 存储数据
initialState: {
count:0
},
// 方法逻辑函数
reducers: {
inscrement(state) {
state.count++
},
decrement(state) {
state.count--
},
},
});
// 导出
export const { decrement, inscrement } = counterStore.actions;
export default counterStore.reducer;
在根文件index.js使用中间件react-redux的Provider组件绑定store,Provider放在App上一层
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import store from "./store";
import { Provider } from "react-redux";
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<Provider store={store}>
<App />
</Provider>
</React.StrictMode>
);
reportWebVitals();
在App.js中使用
导入counterStore子模块方法
导入中间间的hooks,useSelector,useDispatch获取参数和函数
import { useSelector,useDispatch } from "react-redux";
import { inscrement,decrement } from "./store/modules/counterStore";
import './App.css';
import Home from "./components/home";
function App() {
// react-redux中间件导入 useSelector() 函数获取store参数
const {count} = useSelector(state=>state.counterStore)
// react-redux中间件导入 useSelector() 函数获取store函数使用
const dispach = useDispatch()
return (
<div
className="App active"
>
{count}
<button type="" onClick={()=>dispach(inscrement())}>++</button>
<button type="" onClick={()=>dispach(decrement())}>--</button>
<Home>
<span>12222</span>
</Home>
</div>
);
}
export default App;
异步导入封装axios公共数据使用
在store子模块封装公共数据的函数导出使用
使用时用useEffect监听
传参action
使用时传参
接收时action.payload接收参数,书写逻辑
总结
redux状态管理插件的使用