Angular Change Detection - How Does It Really Work?
- Dev modeではChange Detectionが2回走る。そうすることで、Change Detectionのループを検出することができる。これはExpressionHasBeenChangedError(名前うろ覚え)のこと。ライフサイクルメソッドの中などでさらにChange Detectionを起こすようなことをするとthrowされる。Prod Modeではこれが1回しか走らないので検出されないままになり、エラーも出ない。
例えばWebSocketなどを使っていてひっきりなしにデータが到着するから変更検知を抑えたいと言う場合、ChangeDetectorをdetachして任意のタイミングで走らせることなどができる。こんなユースケースには出会ったことないな…
全体的に結構簡潔でわかりやすくていい記事だった。