双方向データバインディングを実装するいくつかの方法
出版社-購読者モデル
ダーティバリューチェック
データハイジャック
vm.set('property', value)
パブリッシャサブスクライバパターン:一般的にバインディングリスナーのデータとビューを達成するために、サブ、パブの方法を介して、通常の練習は、データの方法を更新することですこの方法は、今では低すぎるすべての後に、vm.propertyを介してデータを更新することを好む=値この方法では、同時に自動的にビューを更新するので、次の2つの方法があります。
ダーティバリューチェック:angular.jsは、ダーティバリューチェックによってデータが変更されたかどうかを比較することで、ビューを更新するかどうかを決定します。 最も単純な方法は、setInterval()タイマーポーリングによってデータの変更をチェックすることですが、もちろんGoogleはそれほど低くはないでしょう、angularは指定されたイベントがトリガーされたときにのみダーティバリューチェックに入ります。
- ユーザーがテキストを入力したり、ボタンをクリックしたりするなどのDOMイベント。
- XHRイベントへの応答
- ブラウザの場所変更イベント
- Timer
apply()
データ・ハイジャック: vue.jsは、Object.defineProperty()を使用して、パブリッシャ・サブスクライバ・パターンと組み合わせたデータ・ハイジャックを行い、対応するリスナー・コールバックによって引き起こされるサブスクライバへのデータ変更発行メッセージのセッターやゲッターをハイジャックします。