@2890594972
2017-10-26T00:45:26.000000Z
字数 1018
阅读 1019
vue
解决组件间通讯成本高的问题
原文:Centralized State Management for Vue.js.
翻译:为vue提供集中状态管理
组成:action + mutations + state
1、单向数据流
2、想调用mutations,用commit;
想改变state,用mutate
想通过组件交互,改变state,用dispatch
记住:
action: 用于处理异步相关数据操作
mutations: 用于处理同步操作
安装
"dependencies": {
"vue": "^2.5.2",
"vue-resource": "^1.3.4",
"vuex":"^3.0.0",
"vue-router": "^3.0.1"
}
第一步:引入
import Vuex from 'vuex'
第二步:启用
Vue.use(Vuex);
第三步之前
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
//暴露对象接口
export default new Vuex.Store({
state: {
title:'1506'
},
mutations:{
autoIncrement(state,param){
console.log(6666666666,this, arguments);
+state.title++
}
}
})
第三步:使用
this.$store
state
1、双向代理状态数据
2、谁能改变state: mutations
state: {
title:'1506'
}
mutations
怎么调用mutations中的方法
1、this.$store.commit(函数名,自定义参数);
函数:
参数:2个
第一个参数state,
第二是自定义传参
作用域: Store
mutations:{
autoIncrement(state,param){
console.log(6666666666,this, param);
+state.title++
}
}
actions
如何调用?
this.$store.dispatch(函数名,自定义参数);
函数名:
作用域:Store
参数:2个
第一个参数是actions对象,第二个自定参数
actions: {
//triggerMe如何触发
triggerMe(actions,v){
}
}