ant design Pro中 initialState的使用含义

一 app.jsx文件

使用getInitialState获取全局共用的初始化数据

queryCurrentUser这个接口可以换成我们自己的

二 在需要用到初始化数据的页面进行获取

import { useModel } from 'umi'; // 要配合useModel 去获取数据

umi 提供了useModel('@@initialState')去获取这个数据

const { initialState, setInitialState } = useModel('@@initialState');

console.log( initialState);

Ant Design Pro 项目中,状态管理通常通过 dva(基于 Redux 和 redux-saga 的数据流方案)实现,但也可以直接使用 Redux 来管理状态。Ant Design Pro 是基于 React 技术栈的中后台应用框架,支持 Redux 的集成和使用,以下是如何在 Ant Design Pro 项目中配置和使用 Redux 的步骤。 ### 安装必要的依赖 首先确保项目中安装了 `redux` 和 `react-redux`。如果项目中尚未安装,可以通过以下命令安装: ```bash yarn add redux react-redux ``` ### 创建 Redux Store 在项目中创建一个用于存放 Redux 配置的目录,例如 `src/store`,并在其中创建 `index.js` 文件,用于创建和导出 Redux store。 ```javascript // src/store/index.js import { createStore, combineReducers, applyMiddleware } from 'redux'; import thunk from 'redux-thunk'; // 示例 reducer const initialState = { count: 0, }; function counterReducer(state = initialState, action) { switch (action.type) { case 'INCREMENT': return { ...state, count: state.count + 1 }; case 'DECREMENT': return { ...state, count: state.count - 1 }; default: return state; } } // 合并多个 reducer const rootReducer = combineReducers({ counter: counterReducer, }); // 创建 store const store = createStore(rootReducer, applyMiddleware(thunk)); export default store; ``` ### 在入口文件中集成 Redux 修改 `src/global.ts` 或项目入口文件(通常是 `src/index.tsx`),将 Redux store 注入到 React 应用中。 ```javascript // src/index.tsx import React from 'react'; import ReactDOM from 'react-dom'; import { Provider } from 'react-redux'; import store from './store'; import './index.less'; import App from './App'; ReactDOM.render( <Provider store={store}> <App /> </Provider>, document.getElementById('root'), ); ``` ### 在组件中使用 Redux 在页面组件中,可以使用 `useSelector` 和 `useDispatch` 钩子来访问和更新 Redux 状态。 ```javascript // 示例组件 import React from 'react'; import { useSelector, useDispatch } from 'react-redux'; const Counter = () => { const count = useSelector((state) => state.counter.count); const dispatch = useDispatch(); return ( <div> <p>当前计数: {count}</p> <button onClick={() => dispatch({ type: 'INCREMENT' })}>增加</button> <button onClick={() => dispatch({ type: 'DECREMENT' })}>减少</button> </div> ); }; export default Counter; ``` ### 集成 Redux DevTools(可选) 为了在开发过程中更方便地调试 Redux 状态,可以集成 Redux DevTools 扩展。只需在创建 store 时引入 `composeWithDevTools`: ```bash yarn add redux-devtools-extension ``` 然后修改 `src/store/index.js`: ```javascript import { createStore, combineReducers, applyMiddleware } from 'redux'; import { composeWithDevTools } from 'redux-devtools-extension'; import thunk from 'redux-thunk'; // ... reducers 保持不变 const store = createStore(rootReducer, composeWithDevTools(applyMiddleware(thunk))); export default store; ``` 通过以上步骤,可以在 Ant Design Pro 项目中成功集成和使用 Redux 进行状态管理。Ant Design Pro 提供了良好的架构支持,使得 Redux 的集成过程相对简单和直观 [^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值