angular 模块和延迟加载

angular modules and lazy loading

我需要一些关于模块化和延迟加载的逻辑划分的帮助。

我的应用程序有一个广泛的管理部分。您可以 add/remove 主应用程序正在使用的不同数据。虽然管理部分很广泛,但很少使用。将管理部分作为仅在有人转到管理路径之一时才延迟加载的模块似乎是合乎逻辑的。

我挣扎的是关注点分离。假设我有一个 contacts 的列表。有一个完整的管理页面,您可以在其中 add/edit/delete contacts。有一个 contact.model.tscontacts.service.ts 以及用于显示内容的组件。所有这些都将存在于模块中似乎是合乎逻辑的。

现在主要部分需要一些特别的东西 contact.model.tscontacts.service.ts。我知道模型文件只是打字稿开发糖,在运行时实际上没有任何意义。然而,contacts.service.ts 是一种注射剂,似乎应该由 adminmodule.

导出

这是正确的做法吗?如果是这样 - contacts.service.ts 不会在运行时不可用导致 adminmodule 未加载或导致 adminmodulemainmodule 中使用服务时加载因此打败延迟加载?

我觉得你的方法不错,但是如果你想让延迟加载的模块尽可能的小和轻,最好把它翻转一下。

主应用程序使用的或模块之间共享的任何内容都可以视为 shared。当延迟加载的模块需要来自 shared 的东西时,它已经加载了,因为你可以想象主应用程序在某个时候也需要它。

在您 admin 的延迟加载模块中,应该只有 admin 相关的东西。如果另一个模块需要它们,您可以重用模型和服务之类的东西。但是只有管理员需要的特定管理服务或模型扩展可以放入 AdminModule.

希望对您有所帮助!