本人github
watchEffect
は、Vue 3 の複合 API 関数であり、関数を即座に実行し、その依存関係を応答的に追跡するために使用されます。依存関係 (リアクティブ参照または計算プロパティ) が変更されると、関数は自動的に再実行されます。
これは Vue 2 とは多少異なりますwatch
。watch
通常、単一のリアクティブ プロパティまたは計算されたプロパティを観察するために使用されますが、watchEffect
複数のリアクティブな依存関係は自動的に追跡できます。
基本的な使い方
import {
ref, watchEffect } from 'vue';
export default {
setup() {
const count = ref(0);
const doubled = ref(0);
watchEffect(() => {
console.log(`count is: ${
count.value}`); // 自动追踪 count
doubled.value = count.value * 2; // 自动追踪 doubled
});
return {
count,
doubled
};
}
}
この例では、watchEffect
すぐに 1 回実行され、変更されるたびに再実行されcount
ますdoubled
。
観察をやめる
watchEffect
観察を停止する関数を返します。この関数を呼び出して観察を停止できます。
const stopWatch = watchEffect(() => {
// 你的代码
});
// 停止观察
stopWatch();
とのwatch
比較
watchEffect
すべてのリアクティブな依存関係を自動的に追跡するため、より自動化され便利になります。watch
単一のリアクティブ参照または計算されたプロパティを観察し、古い値と新しい値を提供できるため、より柔軟です。
どちらを選択するかは、特定のニーズによって異なります。より多くの制御と柔軟性が必要な場合は、 を選択することもできますwatch
。よりシンプルで自動のソリューションが必要な場合は、これのwatchEffect
方が適しているかもしれません。