在標準的 Angular 作業流程中已經寫了很多關于取消訂閱 observables 的內容,但關于在頁面重繪 時取消訂閱的內容并不多(至少我沒有找到太多)。
那么,應該取消訂閱的訂閱ngOnDestroy(在頁面重繪 時永遠不會呼叫)可以做什么?我在調查程序中遇到的唯一材料是this,它使用了javascriptonbeforeunload函式。
ngOnInit(){
//Some stuff
window.onbeforeunload = () => this.ngOnDestroy();
}
ngOnDestroy(){
//Some stuff
}
這是一個相當古老的答案,所以也許有些事情已經進一步發展了——目前是否有任何“更多 Angular”的方式來處理頁面重繪 時的此類訂閱?
uj5u.com熱心網友回復:
您無需在頁面重繪 時取消訂閱,因為您的整個應用重新加載且不再訂閱處于活動狀態。您的組件已重新加載,并且(如果您在加載的組件中有一些訂閱)提供了新訂閱
uj5u.com熱心網友回復:
正如@LucaAngrisani 所提到的,ngOnDestroy如果您只是取消訂閱ngOnDestroy.
如果ngOnDestroy由于某些原因您必須在瀏覽器重新加載時呼叫,則更角度的方法是使用@HostListener.
@HostListener('window:beforeunload', ['$event'])
beforeUnload(e: Event) {
this.ngOnDestroy();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/530280.html
標籤:有角度的可观察的
上一篇:使用*ngFor時的預選元素
