Mvvm 在“.vue”组件分离/就绪函数中显式调用vuex操作
我正在我的项目中尝试vue js和vuex 我已经定义了一个Mvvm 在“.vue”组件分离/就绪函数中显式调用vuex操作,mvvm,ecmascript-6,vuex,vue.js,Mvvm,Ecmascript 6,Vuex,Vue.js,我正在我的项目中尝试vue js和vuex 我已经定义了一个store.js: import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex); const state = { user: {} }; const mutations = { SET_CURRENT_USER (state, data) { state.user = data; } }; export default new V
store.js
:
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex);
const state = {
user: {}
};
const mutations = {
SET_CURRENT_USER (state, data) {
state.user = data;
}
};
export default new Vuex.Store({
state,
mutations
});
export const readCurrentUser = function({dispatch, state}) {
let api = require('../api/resources');
api.User.get({
action: 'current'
}).then(function(response) {
dispatch('SET_CURRENT_USER', response.data);
});
};
和我的actions.js
:
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex);
const state = {
user: {}
};
const mutations = {
SET_CURRENT_USER (state, data) {
state.user = data;
}
};
export default new Vuex.Store({
state,
mutations
});
export const readCurrentUser = function({dispatch, state}) {
let api = require('../api/resources');
api.User.get({
action: 'current'
}).then(function(response) {
dispatch('SET_CURRENT_USER', response.data);
});
};
然后,在我的App.vue
组件中:
<template>
<a @click="readCurrentUser">read current user</a>
</template>
<script>
import store from '../vuex/store'
import { readCurrentUser } from '../vuex/actions'
export default {
replace: false,
store: store,
data: function () {
return {
};
},
vuex: {
actions: {
readCurrentUser: readCurrentUser
}
},
attached: function() {
// !!!! HERE IS THE POINT !!!!
// How can I trigger `readCurrentUser` action here?
}
}
</script>
读取当前用户
从“../vuex/store”导入存储
从“../vuex/actions”导入{readCurrentUser}
导出默认值{
替换:false,
店:店,,
数据:函数(){
返回{
};
},
vuex:{
行动:{
readCurrentUser:readCurrentUser
}
},
附:函数(){
//!!!!重点就在这里!!!!
//如何在此处触发'readCurrentUser'操作?
}
}
在上述情况下,当我单击
时,操作按预期启动
但我希望每次附加应用时都能触发动作,我该怎么做呢?最后,我发现解决方案非常简单 因为
vuex.actions
方法将在当前vm对象上注册
因此,呼吁:
attached: function() {
this.readCurrentUser();
}
真管用