Vue.js Vuex模块结构

Vue.js Vuex模块结构,vue.js,vuex,Vue.js,Vuex,试图在教程和示例中找到这一点,但没有找到任何相关内容。我知道这取决于开发人员来构建它,但我想知道如何才能最好地实现以下目标: 我有一个商店,有如下模块: - root/ --- app-store.js --- modules/ ----- tasks.js ----- another-module.js 等等 我了解了模块、名称空间的全部概念。但我不太确定如何处理这种情况(示例): 1-我访问任务列表。 2-单击列表中的任务,它将显示一个包含所有详细信息的视图。 3-您对此任务进行了一些更改

试图在教程和示例中找到这一点,但没有找到任何相关内容。我知道这取决于开发人员来构建它,但我想知道如何才能最好地实现以下目标:

我有一个商店,有如下模块:

- root/
--- app-store.js
--- modules/
----- tasks.js
----- another-module.js
等等

我了解了模块、名称空间的全部概念。但我不太确定如何处理这种情况(示例):

1-我访问任务列表。 2-单击列表中的任务,它将显示一个包含所有详细信息的视图。 3-您对此任务进行了一些更改(更新、删除等)

我现在正在做的是:

  • 一个名为“tasks.js”的文件

  • 它加载所有任务,每个任务的信息都已嵌套

  • 单击时,我设置了一个“currentTaskId”变量。更新/删除/etc时,所有操作都引用此变量

  • 我正在加载以ID为键的任务列表,因此我可以通过任务[ID]轻松地引用它,而不是每次都进行搜索

我的疑问是:

  • 这个结构可以吗?或者我应该创建一个模块来处理单个对象吗

  • 使用ID作为数组的键真的是一种好的做法吗

  • 任何其他输入。我知道Vuex在结构上非常灵活,但我发现自己正在尝试设计一个好的结构,但我害怕过度思考应该更简单的东西


结构始终是开发人员的选择。如果您感到困惑,可以查看
Vuex

应用程序结构

Vuex并没有真正限制您如何构造代码。相反,它实施了一套高层次的原则:

  • 应用程序级状态集中在存储中

  • 改变状态的唯一方法是提交突变,这 是同步事务

  • 异步逻辑应该封装在中,并且可以组合 用行动

  • 只要你遵守这些规则,你就可以决定如何组织你的项目。如果存储文件太大,只需开始将操作、突变和getter拆分为单独的文件

    对于任何非平凡的应用程序,我们可能需要利用模块。以下是一个示例项目结构:

    ├── index.html
    ├── main.js
    ├── api
    │   └── ... # abstractions for making API requests
    ├── components
    │   ├── App.vue
    │   └── ...
    └── store
        ├── index.js          # where we assemble modules and export the store
        ├── actions.js        # root actions
        ├── mutations.js      # root mutations
        └── modules
            ├── cart.js       # cart module
            └── products.js   # products module
    

    作为参考,请查看。

    当我从同事那里得到一个项目时,我就开始使用这种结构。但当它变得更大时,当我将vuex分解为单独的模块时,我会感觉更好。