VUEX,VUE的状态管理模式(2)
actions:异步的行动,功能和mutations是类似的, 都是去改变store里的state,不过actions和mutation有两点不同:
< 1. actions 主要处理的是异步操作,mutations 必须同步执行,而actions 不受这样的限制,也就是说,actions我们即可以处理同步(通过distpatch( ) 触发actions,actions再提交mutations,实际就是actions修改mutations里的值),也可以处理异步的操作。
< 2. actions 改变状态,最后是通过actions提交mutations,
< 3. 定位基于流程顺序,二者扮演不同的角色。
mutations 专注于修改state,理论上是修改state的唯一途径。commit mutations改变mutations 数据!
actions 业务代码,异步请求。
actions: {
a_methods(arguments,data){
arguments.state
arguments.getters
arguments.commit
arguments.rootGetters
arguments.rootState
}
}
mutations:{}
Vuex由三个部分组成:
-
state管理变量,只读属性,由store.state.xx读取
-
mutation操作变量,由store.commit('xx')触发
-
getters计算变量,通过store.getters.xx访问
-
store(存状态,存state),moudles(各个模块)
vuex 中store.commit和store.dispatch的区别及用法:
dispatch:含有异步操作,数据提交至 actions ,可用于向后台提交数据
this.$store.dispatch('isLogin', true);
commit:同步操作,数据提交至 mutations ,可用于读取用户信息写到缓存里
this.$store.commit('loginStatus', 1);