Cả hai đều chạy side effect để phản ứng với thay đổi reactive, nhưng chúng khác nhau ở cách chỉ định dependency và thông tin chúng cung cấp cho bạn. Dùng chúng cho side effect (gọi API, logging, thao tác DOM thủ công) — không phải để dẫn xuất giá trị (đó là việc của computed).
watch — nguồn tường minh, cung cấp giá trị cũ + mới
<script setup>
import { ref, watch } from "vue";
const searchQuery = ref("");
watch(searchQuery, (newVal, oldVal) => {
// chỉ chạy khi searchQuery thay đổi; bạn nhận được cả hai giá trị
console.log(`changed from ${oldVal} to ${newVal}`);
fetchResults(newVal);
});
</script>
