2016-07-05 7 views
2

在最後一個角度連接時,顯示了組件路由器1.0,它具有一個功能,可以使用雙點表示法將路由的子樹委派給某個組件。請參閱:https://www.youtube.com/watch?v=z1NB-HG0ZH4&feature=youtu.be&t=720如何將路由委託給子組件?

我對這個功能很感興趣,因爲你可以構建一個需要自己路由的大型組件(例如聊天系統),但是所有這些都封裝在子組件中,因此將它用作黑盒子無論你想要什麼。如果您在一個大型團隊中工作,這對於可重用組件來說是一個很棒的功能。

在路由器3.0中,這似乎消失了,而是指定嵌套數組內的組件的子路由。

這是否意味着您必須預先構建您的整個路由樹,並且如果您移動組件,您需要手動更改此樹?這是否意味着你不能擁有一個擁有自己封裝路線的組件? 如果我錯了,它是如何在3.0路由器中完成的?

回答

1

這是否意味着你不能擁有一個帶有自己封裝路由的組件?

那麼,路由器肯定不會存在於component.ts文件中,但是您可以將部分路由放在同一個組件文件夾下的服務文件中,併爲路由使用相對路徑。

如果您移動組件周圍,您需要手動更改此樹?

您只需要更改一個連接到該組件的路由。我認爲它並沒有真正改變很多。

通過使用單獨的路由文件,它允許我們延遲加載組件。

doc

在一個單獨的文件中定義的配置鋪平了道路,爲我們立即加載路由配置,但延遲加載 組件本身,直到用戶需要他們未來 。

這樣的異步路由可以使我們的應用程序更快地啓動更多 。我們將在未來的章節更新中介紹異步路由。

0

您的組件路由在單獨的組件路由文件中定義,然後將該文件/對象導入到主路由器中。所以它們仍然被封裝,但是四處移動,重複將需要額外的輸入到主路由器中。

從文檔(大約下降一半, 「里程碑#3」 正上方:

https://angular.io/docs/ts/latest/guide/router.html

enter image description here

enter image description here

0

您可以使用它像這樣,在父組件:

@RouteConfig([ 
    {path: '/', component: HomeComponent, as: 'Home'}, 
    {path: '/list/...', component: ListComponent, as: 'List'} 
]) 

,然後在ListComponent,定義你的孩子路線:

@RouteConfig([ 
    { path: '/:id', component: ListItem, as: 'ListItem' } 
]) 

確保ListComponent有着以及..

+1

這是否仍與3.0路由器工作?因爲API參考和教程都沒有提到這一點。 –