vuex store action、mutation 和 getter 分割文件好和子模块分割那个更优雅?

69 阅读2分钟

将 Vuex store 的 action、‌mutation 和 getter 分割到单独的文件和子模块分割各有其优势,‌但子模块分割通常被认为更加优雅。‌

  • 分割文件:‌将 action、‌mutation 和 getter 分割到单独的文件是一种常见的做法,‌尤其是当 store 文件变得过大时。‌这种方法有助于保持每个文件的可读性和可维护性,‌使得每个部分的功能更加集中和清晰。‌例如,‌可以将 mutation、‌action 和 getter 分别放在不同的文件中,‌如 mutations.js、‌actions.js 和 getters.js,‌然后在主 store 文件中导入这些模块。‌这种做法可以使得代码组织更加有序,‌便于管理和扩展。‌
  • 子模块分割:‌子模块分割是将 Vuex store 分割成多个模块的方式,‌每个模块都有自己的 state、‌getter、‌mutation 和 action。‌这种方式特别适用于大型应用,‌因为它允许开发者将应用程序的状态分割成更小、‌更易于管理的部分。‌通过子模块化管理,‌可以更好地组织和维护大型的 Vuex 应用。‌子模块可以进一步嵌套,‌形成树状结构,‌使得代码结构更加清晰和易于扩展。‌

综合来看,‌虽然将 action、‌mutation 和 getter 分割到单独的文件可以提高代码的可读性和可维护性,‌但子模块分割提供了更高级别的抽象和组织方式,‌特别适合于大型和复杂的应用程序。‌子模块允许开发者根据功能或业务逻辑将 store 拆分成多个独立的、‌可复用的部分,‌从而使得代码结构更加清晰和易于管理。‌因此,‌对于需要管理大型状态的应用来说,‌子模块分割通常被认为是一种更加优雅和推荐的做法。‌

子模块之间存在相同的 state、getter、mutation、action 冲突处理:
  • 给子模块添加命名空间属性 namespaced: true
带命名空间的模块内访问全局内容(官方文档):

vuex.vuejs.org/zh/guide/mo…