私のDIVの高さの1つを確認するために、子コンポーネントの1つにsetIntervalを設定する必要があります。問題は、このsetIntervalがコンポーネントUIのノンストップアップデート自体を引き起こすことが分かったことです。イベントを親コンポーネントもノンストップ更新それ自体です。角度、setInterval原因のコンポーネントがUIを更新しないようにする
@Component({
selector: 'app-test-comp',
template: `
<ul>
<li *ngFor="let num of [1,2,3]">
{{ print(num) }}
</li>
</ul>
`,
})
class TestComponent {
private attr: Date;
constructor() {
setInterval(() => {}, 1000)
}
print(num) {
return num + ' ' + new Date();
}
}
@Component({
selector: 'my-app',
template: `
<div>
<h2>Hello {{name}}</h2>
<ul>
<li *ngFor="let num of [1,2,3,4]">{{ test(num) }}</li>
</ul>
<app-test-comp></app-test-comp>
</div>
`,
})
export class App {
name:string;
constructor() {
this.name = `Angular! v${VERSION.full}`
}
test(num) {
return num + ' ' + new Date()
}
}
上記plunkerリンクを参照してください、それは明らかルートコンポーネントとその子コンポーネントがそのUIを更新し続けることを示しています。 app.ts 18行目のsetIntervalを削除すると、通常どおり動作します。
ノンストップアップデートUIの問題の原因とその防止方法を知りたいと思います。
たsetIntervalがダーティチェックのためのコンポーネントをマークするmonkeypatchedされる上記の例をごplnkrを更新しました –