2017-12-12 10 views
1

これはAngularの変化検出に関するものです。角度変化検出:角度(ゾーン)の外にあるものは何ですか?

彼らは、「コンポーネントのプロパティは、その変更検出周期はそのためにスケジュールされない角度の外を変更する場合は、detectChangesメソッドを使用するとよいでしょう。そうでなければ、markForCheckメソッドを使用します。」と言います

この時点で、コードの一部がの外側にあると思われるケースがありますか?

答えて

1

一般的なアプリケーションでは、「角張った」現象が発生することはほとんどありませんが、発生する可能性があります。これの良い例は、イメージカルーセルなど、アプリで消費するサードパーティコントロールです。ページ上のこの要素は、Angular以外のライブラリによって作成されたため、変更検出を実行するときは、Angularは考えていません。この例を続行するには、ユーザーが右矢印をクリックしてスライドショーを進めるとします。このイベントは非角度ライブラリに配線されていたため、Angularはコンポーネントのチェックを実行することを知らない。ここで開発者は手動で変更検出サイクルを実行して、コンポーネント上の何かが更新を必要としているかどうかを確認する必要があります。

また、コンポーネントを作成し、角度変化検出からコンポーネントを「切り離す」こともできます。理由は、コンポーネントは通常、変更検出を引き起こす多数のイベントを発生させる可能性があります。古典的な例は、100msごとに更新される株価指数です。コンポーネントが切り離されていない場合は、すべてのイベントがAngularに変更検出サイクルを強制します。ただし、デタッチする場合、開発者は戦略的になり、値が実際に変更された場合にのみ変更検出サイクルを実行します。

+0

大きな説明!それは有り難いです :) –

関連する問題