フロントエンド フレームワークとしての Vue の中核の 1 つはデータ駆動型ビューです。 Vue で定義されたデータが変更されると、対応するビューも更新されます。 Vue3 では、パフォーマンスと応答速度を最適化するために、リアクティブ システムとコンポジション API が導入されています。 watchEffect は応答性の高いシステムの一部として、データの変更を監視し、DOM を即座に更新できます。この記事では、Vue で watchEffect を使用して応答データを監視し、DOM を更新する方法を詳しく紹介します。
1. レスポンシブ システム
Vue3 では、レスポンシブ システムの中核は「リアクティブ オブジェクト」と呼ばれる通常の JavaScript オブジェクトです。 reactive 関数を使用してオブジェクトを応答型オブジェクトに変換することにより、Vue はこのオブジェクト内のデータの変更を追跡し、応答することができます。
レスポンシブ システムで使用される主な API は次のとおりです。
2. watchEffect
watchEffect は Vue3 の新しい API です。応答するオブジェクトに基づいて、監視する必要がある依存関係を自動的に推論できます。依存データが変更されると、watchEffect が実行されます。 will コールバック関数はすぐにトリガーされます。 watchEffect の使用方法は computed と似ていますが、watchEffect はプロパティにアクセスする必要はなく、コールバック関数でリアクティブ オブジェクトを直接使用するだけで済みます。
watchEffect には以下の特徴があります。
watchEffect を使用する際の注意点は次のとおりです。
3. watchEffect を使用して DOM を更新する
Vue の単一ファイル コンポーネントで watchEffect 関数を使用し、コールバック関数で DOM 構造を更新できます。こうすることで、コンポーネント内のリアクティブ データが変更されるたびに、結果の変更をすぐに確認できます。
以下では、watchEffect 関数の使用法を示すための例としてカウンターを取り上げます。
<!-- Counter.vue --> <template> <div> <button @click="increment">{{ count }}</button> </div> </template> <script> import { reactive, watchEffect } from 'vue' export default { setup() { const state = reactive({ count: 0 }) watchEffect(() => { document.title = `计数器:${state.count}` }) function increment() { state.count++ } return { count: state.count, increment } } } </script>
この例では、応答性の高いオブジェクトの状態を定義し、watchEffect 関数を使用してその変化を監視します。 count 属性が変更されると、watchEffect コールバック関数のコードが自動的に実行され、ブラウザーのタブ タイトルが更新されます。
ブラウザ タイトルの更新に加えて、watchEffect 関数を使用して、クラスとスタイルのバインディング、テキスト補間、その他の操作など、さらに多くのデータ バインディング操作を実装できます。これらのメソッドにより、コンポーネントの表示・非表示、スタイルの調整などを柔軟に制御することができます。
4. 概要
Vue3 では、watchEffect はデータが変更されたときに DOM を迅速に更新できる非常に実用的なツールです。 watchEffect 関数を使用する場合は、パフォーマンスとコードの品質を確保するために、この関数がリッスンするオブジェクトとコールバック関数内のコードに注意を払う必要があります。 watchEffect に加えて、Vue3 は、より応答性の高い関数と複合 API も提供しており、さまざまなニーズを満たすために組み合わせて使用できます。
以上がVue で watchEffect を使用して応答データを監視し、DOM を更新する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。