Angular2在装载前

Angular2 onbeforeunload

本文关键字:Angular2      更新时间:2023-09-26

每当我的应用程序关闭时,我都想销毁localStorage中保存的令牌。以前我会这样做:

window.onbeforeunload = function (event) {
    localStorage.removeItem('token');
}; 

我不知道如何在Angular2中获得此功能,也不知道将代码放在哪里,以便在应用程序关闭时执行。我的直觉告诉我把它放在我的应用程序级组件中,但我没能在谷歌上找到答案。

您可以使用OnDestroy接口:

import { Component, OnDestroy } from '@angular/core';
class MyComponent implements OnDestroy {
    ngOnDestroy(): void {
        // Your code here
    }
}

示例基于TypeScript。

文档:onDestroy

您可以在ngOnDestroy之前使用@HostListener('window:beforeunload', ['$event']),然后使用localStorage.removeItem('data');,但如果浏览器或窗口崩溃,它将不会被删除。

@HostListener('window:beforeunload', ['$event'])
  ngOnDestroy() {
    localStorage.removeItem('data');
  }