简述对vuex的理解

1.vuex是什么?
    vuex是vue框架的状态管理器。
 
2.如何使用?
    在main.js中引入store;新建store,引入state,const,getters,mutations,actions;
 
3.使用他的功能场景?
    单页应用,组件之间的状态,音乐播放,登录状态,加入购物车,定位
 
4.不用Vuex会带来的问题
    可维护性下降,若是修改数据就要维护三个地方;
    可读性下降,因为一个组件里的数据根本看不出来是从哪里来的;
    增加耦合,大量的上传派发会让耦合性大大增加;
 
5.vuex的属性
    有五种属性,State,Getter,Mutation,Action,Module。
    (1)State特性:
            存储数据,存储状态。将vuex比作一个仓库,仓库里面存放许多对象。而state就是数据源的存放地,对应vue里面的data。
            state里面存放的数据是响应式的,Vue组件从store中读取数据,若是store中的数据发生改变,依赖这个数据的组件也会发生更新。
            通过mapState把全局的state和getters映射到当前组件的computed计算属性中。
    (2)getter特性:
            对state进行计算操作,他就是store的计算属性。防止多次计算降低性能。
            可以在多组间之间复用。若是一个状态只在一个组件内使用就可以不用getters。
    (3)Mutation特性:
            被action调用。功能非常单一:只是改变state数据和状态。
    (4)Action特性:
            处理异步程序。
 (5)Module模块:
    vuex允许将store分成若干模块,每个模块都可以包含以上四种属性。若调用一个变量,但是不同的模块都有的一个同名的变量,这是调用时就会出问题。解决:在模块中添加命名空间:namespaced:true;调用时采用对象的形式调用 某个模块的某个变量就可以了。例如:...Vuex.mapState({a:state=>state.homeStore.a}) ; ...mapActions({fn:"homeStore/fn"})  
   
6.数据流动
         
    
7.辅助函数
    属性: mapState , mapGetters    在computed中
    方法: mapMutations , mapActions  在methods中
 
 
                                                                            流程图
posted @ 2018-11-19 19:53  念徊  阅读(1646)  评论(1编辑  收藏  举报