?
在react项目中使用redux的简单案例
脚手架 create-react-app
-- action.js 动作 --reducers 计算属性集合文件夹 -- index.js 计算模块出口 -- user.js 计算模块1 -- test.js 计算模块2 -- store.js redux的store 出口 -- type.js action 动作名称类型
结构案例
1.action.js 动作整合模块
import types from ‘../type.js‘; //View视图 要发送多少种消息,这里就封装多少种 // 调用 user.js 中的计算属性 export const userAction=(data)=>({type:types.USER,data}); // 调用 token.js 中的计算属性 export const userTokenAction=(data)=>({type:types.TOKEN,data});
2.type.js 常量名称类别封装
export default { TOKEN:‘TOKEN‘, USER:‘USER‘, USER_NAME:‘USER_NAME‘, }
3. reducers 计算属性整合
user.js 计算模块1 (PS: 计算模块的js 文件 分成多个 还是 写成一个 随自身需求,这里举例 只写 一个,token.js 和 user.js 是一致的)
import { createStore,combineReducers } from ‘redux‘;
import _type from ‘../type.js‘;
//reducer函数会接受两个参数,分别为之前的 (状态)state, 动作对象(action)
const initState = ‘初始化数值‘;
export default  function User(state = initState ,action){
        const {type,data} =action;
        // console.log("触发____");
        switch(type){
            case _type.USER:
            //最好是新生成的数据    
            return {...data};
            case _type.USER_NAME:
            return ‘111‘;
            case _type.TOKEN:
            return state + ‘222‘;
            default:
            return state;
        }
}
index.js 计算模块出口
4.redux 导出
5.项目工程入口集成
import React from ‘react‘; import ReactDOM from ‘react-dom‘; import ‘./index.css‘; import App from ‘./App‘; import reportWebVitals from ‘./reportWebVitals‘; import serviceUrl from ‘./service/url‘; import { createStore } from ‘redux‘; import { Provider, connect } from ‘react-redux‘; import store from ‘./redux/store‘; ReactDOM.render( <React.StrictMode> <Provider store={store}> <App /> </Provider> </React.StrictMode>, document.getElementById(‘root‘) ); reportWebVitals();

?
原文:https://www.cnblogs.com/tianmiaogongzuoshi/p/15113858.html