我們最近將我們的angular2應用從2.0.0-beta.15
升級到2.0.0-rc.5
(包括遷移到新路由器3.0.0-rc.1
)。通過左側的菜單和頁面頂部的子菜單,我們的應用程序同時有兩個<router-outlet>
。重新使用新角路由器(3.0.0-rc.1)
在更新後追逐一些不同的行爲,我注意到現在(更新後)我們應用程序中的任何組件被破壞並構建,即使組件位於<router-outlet>
之外。舊路由器的情況並非如此。這就像新的路由器不能重用已經存在的組件。
我把角的CrisisCenter
分叉爲plunker,並向每個組件構造函數添加了一些簡單的調試控制檯輸出,以驗證這是由於新版本而不是配置。行爲是一樣的:count
永遠不會增加,因爲組件不會被重用。有沒有人有一個想法如何重用組件的實例?
另外,有人可以解釋爲什麼新的路由器不想重用組件?我已經從@angular/router-deprecated
遇到CanReuse
,但這個功能還沒有到達新的路由器。但即使CanReuse
用於新路由器,默認情況下重用組件,而不是對所有「靜態」組件實施CanReuse
更合理嗎?還是不應該重新使用組件?
請參閱http://stackoverflow.com/questions/38036498/angular2-router3-cant-reload-refresh-active-route –
感謝尼古拉,但這似乎是關於別的。 –