【问题标题】:Where to place model classes in the Vuex project structure?将模型类放在 Vuex 项目结构中的什么位置?
【发布时间】:2020-04-06 07:45:43
【问题描述】:

我正在开发一个使用 Type Script 进行 Vuex 状态管理的 Vue 应用程序。我想知道我应该在哪里放置我的模型类。目前我将它们放在子目录“models”中的“store”下。现在我有更多模型使用的自定义类型,我不确定“存储”目录是否正确。但另一方面,模型与国家关系密切,对吧?

这方面的最佳做法是什么?

【问题讨论】:

    标签: vue.js vuex


    【解决方案1】:

    简答:将“models”文件夹放在“store”文件夹旁边,而不是放在里面。

    长答案:

    组织文件一般有两种策略:

    1. 按实用程序分组(例如模型、服务、组件等)
    2. 按域类别(例如用户、产品、预订等)分组

    无论你选择什么,都有一个权衡。

    第一种策略是最常见的。它可以防止您的项目在根文件夹中获得许多文件夹,并且可以轻松决定将新文件放在哪里。缺点是密切相关的文件最终会相距甚远,随着代码库的增长,您将花时间寻找相互依赖的文件。

    第二个将相关文件很好地保存在一起。例如,想象一个名为 Pets 的文件夹,其中包含一个宠物模型、一个宠物组件、一个宠物服务和该服务的单元测试。这使得通过 Pet 逻辑导航变得更加容易。但是,目录遵循树形结构,而域模型看起来更像图表,这可能会导致难以正确组织文件。

    我发现人们最常首先按实用程序组织代码,然后按领域类别组织代码,但我不确定我是否将其称为最佳实践。反过来,对我来说也常常效果很好。

    如果您按实用程序进行组织,那么您应该避免嵌套它们,因为几乎从来不会出现一种实用程序唯一属于另一种实用程序的情况。当然,模型并不是唯一属于商店的。依赖于模型的组件与该模型的耦合与存储一样紧密。因此,将“models”文件夹放在“store”文件夹旁边会更有意义。

    【讨论】:

    • 按实用程序分组对于新开发人员来说更容易跳入您的代码并开始贡献,而按域类别分组要求他们首先了解您的应用程序逻辑,然后开始贡献。
    • 对于新开发人员来说,在做出贡献之前了解应用程序逻辑通常是个好主意,至少基本上是这样。按域分组是另一种自我记录代码的方式。
    猜你喜欢
    • 2011-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 2018-10-19
    • 1970-01-01
    • 2010-12-16
    相关资源
    最近更新 更多