【发布时间】:2018-12-01 19:02:53
【问题描述】:
Vuex 是否应该只保留状态结构的代码以及如何修改该状态(突变、动作),或者还保留实际的状态初始化和值?
当我的状态初始化代码变得更加复杂时,我开始怀疑它,因为我没有看到 Vuex 架构中有任何自然的地方可以放置此代码。
假设我有这样一家商店:
export default {
state: {
list: []
},
mutations: {
addItem(state, { item }) {
state.list.push(item);
}
}
}
如果列表开始为空,就足够了。但是,如果我有列表的默认值并且还想将列表存储在 LocalStorage 中,这样我就可以在页面加载之间保留它的值。
const STORAGE_LIST_KEY = 'list';
const LIST_DEFAULT = [
{
id: 1,
name: 'item 1'
},
{
id: 33,
name: 'item 33'
}
];
function initializeList() {
let savedList = localStorage.getItem(STORAGE_LIST_KEY);
return savedList ? savedList : LIST_DEFAULT;
];
Vuex store 架构中是否有一些自然的地方,我应该在哪里放置initializeList() 函数? (例如,在 Vue 组件中,我会将 initializeList() 放入组件的 methods 部分)或者存储只是关于结构而初始化代码属于 Vue 组件?
【问题讨论】:
标签: javascript vue.js vuex