使用 Angular 内置的 Zone.js 库,将 setTimeout 封装在 Angular 的“zone”中,以此提高性能。
以下是示例代码:
import { Component, NgZone } from '@angular/core';
@Component({
selector: 'app-example',
template: `
`
})
export class ExampleComponent {
constructor(private ngZone: NgZone) {}
startTimer() {
this.ngZone.runOutsideAngular(() => {
setTimeout(() => {
// code here
}, 1000);
});
}
}
上面的代码使用了 ngZone.runOutsideAngular() 方法,将 setTimeout 非依赖注入的函数嵌套在一个 Angular 无效的区域之外,从而提高了性能。