喷喷redux、vuex这些状态管理库

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() }

  

  

  

posted @ 2019-05-31 21:18  无工时代  阅读(350)  评论(0)    收藏  举报