本文共 2289 字,大约阅读时间需要 7 分钟。
安装必要工具:
npm install -g create-react-app
创建项目:
create-react-app react-redux-ant
通过Yarn安装:
yarn add redux --save
在 src 目录下创建 store 和 reducers 目录:
store/index.js:import { createStore } from 'redux';import reducer from './reducers/reducer';const store = createStore(reducer);export default store; reducers/reducer.js:const defaultState = { number: 0, userInfo: { name: 'wxq' }};export default (state = defaultState, action) => { return state;}; 在组件中使用:
const { number } = props.store.getState(); 通过 dispatch 方法:
props.store.dispatch({ type: 'ADD', data: 1}); 在组件中:
const add = () => { props.store.dispatch({ type: 'ADD', data: 1 });}; 创建 reducers.js:
import { combineReducers } from 'redux';import counter from './counter/index';const reducers = combineReducers({ counter});export default reducers; 安装 React-Redux:
yarn add react-redux
在主组件外使用 Provider:
import React from 'react';import ReactDOM from 'react-dom';import App from './App';import store from './store';import { Provider } from 'react-redux';ReactDOM.render( , document.getElementById('root')); 在组件外部使用 connect:
import React from 'react';import { connect } from 'react-redux';const Index = ({ number, add }) => { return ( count组件
count: {number}
);};export default connect((state) => ({ number: state.number })) (Index); 安装 Redux Thunk:
yarn add redux-thunk
创建 store:
import { createStore, applyMiddleware } from 'redux';import reducer from '../reducers/reducers';import thunk from 'redux-thunk';const store = createStore(reducer, applyMiddleware(thunk));export default store; 在 actionCreators.js 中添加异步逻辑:
export const actionCreators = { add: () => ({ type: 'ADD', }), getInfo: () => dispatch => { fetch('/data.json') .then(res => res.json()) .then(data => { dispatch({ type: 'GET_INFO', payload: data, }); }); },}; Redux 是一款基于 Immer.js 的状态管理库,适合处理复杂的异步状态逻辑。而 DVA 则是一种轻量级的状态管理方案,适合简单的状态管理需求。两者可以根据项目需求灵活选择。
转载地址:http://sqcg.baihongyu.com/