Назад к вопросам
Middle
7
Чем отличается watch от watchEffect?
Компании, где спрашивали
Ростелеком
Ответ от нейросети
sobes.tech AI
watch и watchEffect — это функции реактивности во Vue.js, которые позволяют отслеживать изменения реактивных данных, но работают немного по-разному:
-
watch: используется для наблюдения за конкретными реактивными источниками (переменными, вычисляемыми свойствами). Позволяет выполнять побочные эффекты при изменении этих данных. Можно получить доступ к старому и новому значению.
watch(() => someRef.value, (newVal, oldVal) => { console.log(`Changed from ${oldVal} to ${newVal}`); }); -
watchEffect: автоматически отслеживает все реактивные зависимости, которые используются внутри переданной функции, и повторно запускает её при их изменении. Не предоставляет доступ к старым значениям.
watchEffect(() => { console.log(`Current value is ${someRef.value}`); });
Итого:
watch— более явный и точный контроль за конкретными источниками.watchEffect— удобен для автоматического отслеживания всех реактивных зависимостей внутри функции.