给定两个功能模块 (A,B),每个模块都有自己的路由模块,如何将模块 B 导入 A 而不会使来自 B (/B) 的路由干扰 A (/A)?实际上,来自 B 的路由推送到模块 A 的 routeConfig 的前面,导致 (/B) 加载指定的组件。
用例是模块 B 还导出我在 A 中需要的组件(这与模块 B 路由指定的组件相同)。
我想直接的解决方案是简单地为 B 创建两个模块,导出组件的 Bc 和导入 Bc 并拥有自己的路由模块的 Br。在那种情况下,我会将 Bc 导入 A 并避免问题。
是否有另一种方法来处理这种情况,或者仅仅是我当前的架构不正确?
让我们尝试从架构的角度来理解这一点。
如果你有两个功能模块,那么为了避免任何路由冲突,也为了让你的 App 加载更快,你应该考虑让这两个模块都延迟加载。
如果您有一个在两个模块之间共享的组件,那么理想情况下您应该将它放在一个共享模块中,然后在两个模块(A 和 B)中导入共享模块。
如果你有一些一次性的组件、管道、指令等,那么你应该把它们放在一个核心模块中,然后在你的 AppModule 中导入一次。
在Angular Styleguide 中有一些与此类似的极其重要的指南,我建议您阅读一次。
希望这可以帮助您选择应该对shared
组件执行的操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句