action
action相当于是异步分发方法,也就是说指挥多个人同时做一件事情(store.dispatch(‘increment’))
然后给每个工人分配具体内容(就是commit动作) 具体工作内容就是mutation里的方法,这些工人干的是同一件事情。
两种写action的方法
//未用参数解构
actions: {
increment (context) {
context.commit('increment')
}
}
//使用参数解构
actions: {
increment ({ commit }) {
commit('increment')
}
}
在vuex的api中 写着
action的处理函数总是第一个接受context对象
context 对象包含以下属性:
{
state, // 等同于 `store.state`,若在模块中则为局部状态
rootState, // 等同于 `store.state`,只存在于模块中
commit, // 等同于 `store.commit`
dispatch, // 等同于 `store.dispatch`
getters, // 等同于 `store.getters`
rootGetters // 等同于 `store.getters`,只存在于模块中
}
context={state:”“, commit:”“,…}
参数本来传过来的是context对象
{commit}=context={state:”123”,commit:”345”…}
意思就是 commit=context.commit
getter
我觉得getter就是一个取操作 相当于一个组件拿数据的接口
特别用于 多个组件想要拿到某个数据
vuex里route里
const state = {
recentJob_list: []
};
const getters = {
recentJobList : state => state.recentJob_list,
//这是一个对象函数
};
vuex的vue上
computed:{
...mapGetters(['recentJobList'])
},
这里补充 computed属性
…运算符的理解
js的集中常用函数大坑 https://blog.csdn.net/obkoro1/article/details/68943343