为什么Angular默认将应用程序路由放置到自己的模块中?

为什么Angular默认将应用程序路由放置到自己的模块中?,angular,Angular,Angular文档和Angular CLI促使Angular初学者(我在这条船上)在主应用程序之外的单独模块中实现应用程序路由,而没有真正解释为什么它会得到这种特殊处理。例如,当我使用CLI构建带有布线的新角度项目时,我会在主app.module.ts文件中导入一个app.routing.module.ts文件 我读过这篇文章,这是因为关注点的分离,但我很难接受这是全部原因,因为在一个应用程序中有多个关注点,但唯一的路由是获得自己的模块 作为Angular的初学者,我不知道这是否是一个基于观点的

Angular文档和Angular CLI促使Angular初学者(我在这条船上)在主应用程序之外的单独模块中实现应用程序路由,而没有真正解释为什么它会得到这种特殊处理。例如,当我使用CLI构建带有布线的新角度项目时,我会在主
app.module.ts
文件中导入一个
app.routing.module.ts
文件

我读过这篇文章,这是因为关注点的分离,但我很难接受这是全部原因,因为在一个应用程序中有多个关注点,但唯一的路由是获得自己的模块

作为Angular的初学者,我不知道这是否是一个基于观点的问题,或者这是一个好主意是否有合法的技术原因。我无论如何都找不到任何信息,这就是我问的原因

对于那些在中大型应用程序上工作过的经验丰富的人来说,您什么时候将应用程序路由放在或不放在separte模块中,为什么?在某一点上,这在技术上是必要的,还是仅仅是一种组织惯例


谢谢。

这都是关于分离关注点的问题。虽然您可能会尝试将整个应用程序逻辑放在一个模块中,但通常建议将每个关注点分离到一个单独的模块中。定义显示产品信息的视图的模块不应直接担心视图的呈现方式和呈现时间。将不同的逻辑区域彼此解耦,将使代码更干净、更易于维护。

感谢您的支持。我理解分离关注点的原则,但我觉得这不是全部答案。例如,我想说,应用程序的服务与视图是不同的关注点,但它们不像路由那样拥有自己的模块。还是我遗漏了什么?原因可能是路由在其自己的模块中定义,因为角度路由可能跨越/指向多个模块?服务应该是单独的单元。这些“单位”恰好不是一个角度的“模块”。这里有一个很好的定义:
模块是一种机制,用于对相关的组件、指令、管道和服务进行分组,这种方式可以与其他模块组合以创建应用程序。一个有角度的应用程序可以被认为是一个拼图,其中每个部分(或每个模块)都需要能够看到完整的画面。
:很多人不理解投票和接受,或者为什么投票和接受很重要;)如果您特别询问为什么
app routing.module.ts
存在,以及为什么它需要作为一个单独的模块来实现,那么它不存在。我的很多项目都有一个
app\app routes.ts
。它从'@angular/router'导入
{Routes,RouterModule},但它没有自己的
@NgModule({…})
。现在重新打开:)我相信这是您的问题,关于自动生成的模块“app routing.module.ts”:
您何时将应用程序路由放在或不放在单独的模块中,以及为什么?在某种程度上,这在技术上是必要的,还是仅仅是一种组织惯例?
我的投票是“组织惯例”。。。但我准备错了;)