api太恶心、api太恶心、api太恶心
什么是Redux它为什么存在 : https://www.jianshu.com/p/d6614feef303
Redux、vuex是可以帮你处理应用的共享状态,但是感觉它的api太恶心,开发、维护的时间成本太高。
推荐用另外种状态管理方式,别再用vuex或redux库去做管理了。
1、Bus事件通信
2、借助中间文件,充当中央仓库
ES6 的模块机制天然就支持建立一个中央仓库, 当 A 文件使用 import value from './b.js' 来引用 B 文件里面的 value 的时候, 这时就会赋值给 A 文件一个 B 文件的 value 的 只读引用, 当 B 文件里面的 value 的值发生变化的时候, A 文件里面的 value 也会跟着改变。
约定一个状态共享的文件夹:states。里面新建文件
/* * 文件名:app.js * 用于全局状态共享 * */ export const states={ //用户信息 _userInfo:null, getUserInfo:async function(){ if(!this._userInfo){ this._userInfo=await fetch('/userInfo'); } return this._userInfo; }, //app信息 _appInfo:null, getAppInfo:async function(){ if(!this._appInfo){ this._appInfo=await fetch('/appInfo'); } return this._appInfo; } }
那个组件需要共享状态,就引入共享文件,在组件生命周期created(vue)或者componentwillmount(react),执行const userInfo=await states.getUserInfo();
/* * 文件名:home.js * 首页或其他页面 * */ import states from './states/states.js'; //vue.js created:async function(){ const userInfo=await states.getUserInfo() }
//react.js componentwillmount:async function(){ const userInfo=await states.getUserInfo() }