我在我的应用程序的根路由模块中使用以下路由:
const routes: Routes = [
{
path: '',
children: [
{
path: 'home',
component: HomeDetailsComponent,
},
{
path: 'home',
component: HomeDetailsComponent,
children: [
{
path: 'room/:id',
component: RoomDetailsComponent,
},
]
},
{
path: 'sectorNumber',
component: SectorNumberComponent
},
{
path: '**',
redirectTo: 'home',
},
]
}
];
现在,在HomeDetailsComponent中,我使用OnInit生命周期钩子来调用http get方法并基于此,进行一些事件处理。但是,我注意到,通过这种路由,我的HomeDetailsComponent初始化了两次。当我导航到'http://localhost:3000/#/curriculum/'
时,当我导航到'http://localhost:3000/#/curriculum/chapter/1'
路线时,我会导航谁能告诉我为什么会这样?
答案 0 :(得分:1)
因为组件不会重复用于不同的路由。您将导航离开路线的组件将被销毁,并将创建您导航到的路径。仅当from-route和to-route相同但参数值(:id
)发生变化时,这才会有所不同。