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中
流程图