繁体   English   中英

Angular forRoot 和 forChild

[英]Angular forRoot and forChild

我试图了解 Angular 的forRootforChild静态方法。

我有两个问题。

1) 以下代码片段是否等效?

这个:

// App Module
const routes = [
  { path: '', pathMatch: 'full', component: HomeComponent },
  { path: 'dashboard', component: DashboardComponent }
];

const routing: ModuleWithProviders = RouterModule.forRoot(routes);

有了这个:

// App Module:
const routes = [
  { path: '', pathMatch: 'full', component: HomeComponent },
];

const routing: ModuleWithProviders = RouterModule.forRoot(routes);

// Dashboard Module:
const routes = [
    { path: 'dashboard', component: DashboardComponent }
];

const routing: ModuleWithProviders = RouterModule.forChild(routes);

2)他们在同一个对象上工作吗?

据我了解, forRoot方法是实例化路由器服务的方法。 它添加了第一条路线。 forChild将第二条路由添加到同一个对象。

那是对的吗? forRootforChild最终在同一个实例上工作吗?

仅在根 AppRoutingModule(或 AppModule,如果您注册顶级应用程序路由的地方)中调用 RouterModule.forRoot()。 在任何其他模块中,您必须调用 RouterModule.forChild 方法来注册其他路由。

https://angular.io/guide/router

这是 RouterModule.forRoot() 和 RouterModule.forChild() 的区别

RouterModule.forRoot()

  1. 声明路由器指令
  2. 管理我们的路由配置

  3. 注册路由器服务

  4. 应用程序使用一次

RouterModule.forChild()

  1. 声明路由器指令
  2. 管理我们的路由配置
  3. 不注册路由器服务
  4. 在功能模块中使用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM