两者都可以响应反应性变化而运行副作用,但它们在如何指定依赖项和提供的信息方面有所不同。将它们用于副作用(API 调用、日志记录、手动 DOM 操作)——不要用于导出值(那是 computed)。
watch — 显式源、提供旧值和新值
vue
<script setup>
import { ref, watch } from "vue";
const searchQuery = ref("");
watch(searchQuery, (newVal, oldVal) => {
// runs ONLY when searchQuery changes; you get both values
console.log(`changed from ${oldVal} to ${newVal}`);
fetchResults(newVal);
});
</script>
监视你指定的源,仅在该源变化时运行回调,并提供 —— 当你需要比较它们或对某个特定状态片段做出反应时很有用。
