我正在构建一个小型的Vue / Vuex / Rails应用程序,并试图找出处理这种情况的最佳方法。
在登录或刷新页面时,我有一个mixin用于检查currentUser是否处于状态。如果不是,它将运行对我的api的调用以检索currentUser以及该用户的深层嵌套关系。像这样:
currentUser: {
...user data
groups: [
categories: [
items: [
...item data
]
],
],
}
该api调用位于user.module.js
中。我的问题是,不是将整个用户对象及其所有嵌套数据存储在用户状态下,而是可以将所有数据拆分成单独的模块(例如:groups.module.js
,categories.module.js
, items.module.js
)?
这将使我可以直接进入items.module.js
中的项目,从而进行更简单的操作和更改。
感谢您的帮助!
答案 0 :(得分:1)
是的,绝对应该将它们分成多个模块,否则,您的数据结构将变得非常难以处理和理解。定义了模块的结构后,在获取user
数据后,您可以dispatch
个actions
到每个模块来填充它们的状态。
我创建了一个codepen来显示给您。