如何忽略导入到定义自己路由的父功能模块中的功能模块的路由

麦凯恩

给定两个功能模块 (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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章