在 Angular 中将路由集中到服务中
Centralizing routes into a Service in Angular
这个问题的重点是如何管理大型应用程序中的路由。我仍然不确定如何处理这个问题,或者教程是否远远超出了最佳实践。
好了,进入正题。当应用程序增长时,迟早会有数百个 routerLink
带有硬编码字符串的指令,例如
<a routerLink="foo">
或类似动态的
<a [routerLink]="'/foo/bar/' + myObj.id">
在指令中永久重复硬编码路由片段和动态组装路由感觉不太对。
关于不要重复自己和单一职责原则 (SRP),我首先想到的是创建类似于 RouteService 的东西集中了这些路由并且可以注入到组件中。它还可能为路由模块提供常量。
因此,尽管 Angular 风格指南 preaches to obey SRP 这个问题从未得到解决。 英雄之旅 之类的教程通常太小,无法考虑编写大型应用程序时出现的问题。
使用可注射的 Service 创建路由或
是否有旨在从 components/templates 中提取硬编码路由的任何模式、概念和框架?
在我的 SPA Angular 4(大约 70 个子页面)中,我使用了 [routerLink]=getRouterLink(page_name)
。
在我的组件打字稿 class 中,我调用了一个 link 服务,该服务从 java 后端的 yaml 文件中读取给定 page_name 的 link。
我认为这是将 DRY 和 SRP 应用于该主题的最优雅的方式。
遗憾的是 angular 教程没有处理这个主题。
这个问题的重点是如何管理大型应用程序中的路由。我仍然不确定如何处理这个问题,或者教程是否远远超出了最佳实践。
好了,进入正题。当应用程序增长时,迟早会有数百个 routerLink
带有硬编码字符串的指令,例如
<a routerLink="foo">
或类似动态的
<a [routerLink]="'/foo/bar/' + myObj.id">
在指令中永久重复硬编码路由片段和动态组装路由感觉不太对。
关于不要重复自己和单一职责原则 (SRP),我首先想到的是创建类似于 RouteService 的东西集中了这些路由并且可以注入到组件中。它还可能为路由模块提供常量。
因此,尽管 Angular 风格指南 preaches to obey SRP 这个问题从未得到解决。 英雄之旅 之类的教程通常太小,无法考虑编写大型应用程序时出现的问题。
使用可注射的 Service 创建路由或 是否有旨在从 components/templates 中提取硬编码路由的任何模式、概念和框架?
在我的 SPA Angular 4(大约 70 个子页面)中,我使用了 [routerLink]=getRouterLink(page_name)
。
在我的组件打字稿 class 中,我调用了一个 link 服务,该服务从 java 后端的 yaml 文件中读取给定 page_name 的 link。
我认为这是将 DRY 和 SRP 应用于该主题的最优雅的方式。
遗憾的是 angular 教程没有处理这个主题。