此问题集中于如何在大型应用程序中管理路由。我仍然不确定如何处理,或者教程是否远远超出最佳实践。
好吧,让我们说清楚。当应用程序增长时,迟早会有成百上千的routerLink
指令带有诸如
<a routerLink="foo">
或动态的东西
<a [routerLink]="'/foo/bar/' + myObj.id">
在指令中永久重复硬编码的路由片段和动态组装路由确实不对。
关于不要重复自己和单一责任原则(SRP),我想到的第一件事就是创建类似 RouteService < / em>集中这些路线,并可以注入到组件中。它还可能为路由模块提供常量。
因此,尽管Angular样式指南preaches to obey SRP从未解决过此问题。像《英雄之旅》这样的教程通常太小,以至于无法考虑编写大型应用程序时出现的问题。
使用可注射的 Service 创建路线是否有任何警告? 是否有任何旨在从组件/模板中提取硬编码路由的模式,概念,框架?
答案 0 :(得分:1)
我使用了[routerLink]=getRouterLink(page_name)
。
在我的组件typescript类中,我调用了一个链接服务,该链接服务从java后端的yaml文件中读取到给定page_name的链接。
我认为这是将DRY和SRP应用于此主题的最优雅的方法。
实际上,可惜的是,角度教程没有处理这个主题。