在使用RouterModule时,我对 forRoot 子级和 forChild 的性能有点困惑。
如果我在路由模块中使用RouterModule.forChild(routes),并将其导入 app.module.ts ,然后尝试使用 router-outlet >在 app.component.ts 中,它会引发错误。
按照定义:
forChild
创建一个模块,其中包含所有指令和给定的路由,但不包括路由器服务。
路由器服务用于浏览器位置检测,但是为什么它不能找到路由器出口指令,因为定义明确指出它将包含所有指令。
但是,如果在功能模块中完成相同的操作,则可以正常工作。
很抱歉没有发布代码,因为它很长。
答案 0 :(得分:2)
forChild
注册路由,而forRoot
注册路由并配置/初始化路由器本身
答案 1 :(得分:1)
RouterModule.forRoot()
必须位于AppModule
中。它是实例化路由器服务的一种。所有其他模块将使用RouterModule.forChild([])
来处理路由。
在一个应用中,您只能使用一种forRoot
。