Vuexx 并不限制你的代码结构。但是,它规定了一些需遵守的规则:
- 应用层级的状态应该集中到单个 store 对象中。
- 提交 mutation 是更改状态的唯一方法,并且这个过程是同步的
- 异步逻辑都应该封装到 action 里面。
只要你遵守以上规则,如何组织代码随你便。 如果你的 store 文件太大,只需将 action、mutation 和 getter分割到单独的文件。
对于大型应用,我们会希望把Vuex相关代码分割到 模块中。 下面是项目结构示例:
|一 index.html
|一 main.js
|一 api
| |_ ... 抽取出API请求
|—— components
| |_ App.vue
| |_ ...
|__ store
|—— index.js 我们组装模块并到处 store 的地方
|—— actions.js 根级别的 action
|—— mutations.js 根级别的 mutation
|—— modules
|—— cart.js 购物车模块
|—— products.js 产品模块