“如果組件已經存在于 DOM 中,Angular 就不會創建組件。它會重用組件實體。這意味著當用戶再次導航到組件時,不會呼叫 ngOnInit 生命周期掛鉤。”
基于此,我無法理解為什么在我們檢索路由引數時ngOnInit如果它包含該方法,為什么會再次呼叫生命周期方法。.subscribe
誰能幫我解決這個問題?
謝謝你。
uj5u.com熱心網友回復:
我們可以通過多種方式訪問??路由引數,使用 -->
this.route.snapshot.params["someParam"]
或者
this.route.params.subscribe()
假設我們使用第二種方法.subscribe,因為您對這種情況感興趣。即使它在ngOnInit生命周期方法中,如果路由引數已更改,它也會被觸發。我們訂閱了某些更改(路由引數更改),因此如果它們更改,我們將獲得最新值。
一切都結束了,這不是關于ngOnInit。這是關于我們的訂閱。我們正在“傾聽”這些變化。
僅供參考,如果您使用第一種方法 this.route.snapshot.params["someParam"],而我們沒有.subscribe這種方法,則不會再次觸發。它只會運行一次,不會再次運行,因為我們對可能即將發生的路由引數更改“不感興趣”。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/413250.html
標籤:
下一篇:Angular組件創建最佳實踐
