【发布时间】:2018-10-05 22:03:24
【问题描述】:
我有一个商店,里面有一些被多个组件使用的数据:
export default new Vuex.Store({
state: {
_invoices: [],
},
mutations: {
setInvoices: (state, invoices) => (state._invoices = invoices),
},
actions: {
getInvoices: context => {
setTimeout(() => {
const invoices = [{id: 1}, {id: 2}, {id: 3}];
// mimicking ajax call
context.commit('setState', invoices);
},2000);
},
},
})
在我的组件中,我调用$store.dispatch('getInvoices') 来实际获取它们。
有没有办法自动获取发票(即无需从组件内部手动调用getInvoices),但仅在实际请求发票时?
例如如果用户登录只是为了更改他的密码并且从不使用需要发票的组件,则它们不会被加载。
正如我所提到的,多个组件都需要发票,所以我想避免将 $store.dispatch('getInvoices') 放在每个组件的 mounted() 方法中。
感谢任何想法。
【问题讨论】:
-
可以显示 main.js 和一些组件代码吗?
-
这么多代码,你到底在找什么?
-
你的一个组件和
main.js
标签: vue.js vuex lazy-initialization