首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角心/特征/共享模块:哪里去?

角心/特征/共享模块:哪里去?
EN

Stack Overflow用户
提问于 2017-03-14 07:18:11
回答 1查看 21.5K关注 0票数 38

首先,它不是任何其他问题的重复,我读过关于这个问题的角度指南。然而,我仍然有几个问题。

功能模块是最简单的模块--您有一个特性--将它分组为功能模块。比方说,除了明显的特性之外,我还有每个应用程序都有的页面:

  1. 主登陆页(不是app.template.html,而是它在路由器出口中首先呈现的内容)
  2. 错误页,如404。
  3. 联系人页面,关于我们页面

我可能会把所有的东西都移到叫做“静态”的特性模块中,但是我不喜欢这个名字,也不喜欢把大部分不相关的东西分组到同一个模块中,即错误页面和联系人页面。那么,提到的页面的模式是什么呢?

现在,共享与核心模块。我有以下项目:

  1. CsrfService (听起来像我的核心)
  2. 记录器(angular2-记录器服务)
  3. HttpModule(核心还是共享?)
  4. 登录守卫和AuthService (我有使用AuthService的NavbarComponent/NavbarModule和LoginComponent ),那么它们是一个特性(登录/auth)还是一个核心/共享功能?

因此,主要的问题是如何决定我列出的项目和新项目的选择。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-14 08:38:43

您的问题的答案是主观的,但是您可以从官方文档中得到一些建议:我应该拥有什么样的模块,我应该如何使用它们?。如果你没有读过NgModule和FAQ上的文档,我建议花几个小时研究它们,事情会更清晰(至少对我来说是这样:)

我使用了下面的设置,对我来说,非常好,

  • app/共享--这是我保存其他模块所需的小东西的模块。我在那里有3个子模块-- directivescomponentspipes,只是为了更好地组织起来。例如:filesize.pipeclick-outside.directiveoffline-status.component.
  • app/公共-在本模块中,我保留公共路由和顶级组件。例子:about.componentcontact.componentapp-toolbar.component
  • app /核心-应用程序需要的服务(而且没有它就不能工作)转到这里。例如:ui.serviceauth.serviceauth.guarddata.serviceworkers.service.
  • app/protected -类似于公共,只适用于授权用户。此模块具有受保护的路由和顶级组件。例如:user-profile.componentdashboard.componentdashboard-sidebar.component.
  • app/features --这是应用程序功能所在的模块。它们分为几个子模块。如果你的应用程序播放音乐,这就是playerplaylistfavorites子模块的去处。如果您查看@angular/material2,这将与它们的MaterialModule和许多子模块(如MdIconModuleMdSidenavModule等)相当。
  • app/dev --我在开发时使用这个模块,不要在生产中发布它。

一般建议如下:

  • 按功能而不是按页组织特性
  • 在自己的模块中保留类似的路径(这对延迟加载很有好处)
  • 应用程序功能所需的服务转到核心
  • 您导入不止一次(或两次)的东西可能对共享有好处。
  • 详细阅读文档,里面有很多好东西。

要回答你的具体问题:我会把所有这些路线放在一个模块中- staticpublic,不管它的名字是什么。CsrfService - core,Logger - core或dev,HttpModule - core,您只需要一个实例(可能),即auth - core。不要将服务放在共享中。

如果您不能决定如何/什么分组在一个功能,制作一个新的应用程序,复制特定的功能文件夹,它也应该在那里工作。如果没有,你就需要更好地组织事情。

票数 90
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42779871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档