Sobes.tech
Back to questions
Middle
6

Чем отличается watch от watchEffect?

Companies where asked
Ростелеком

Answer from AI

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 — удобен для автоматического отслеживания всех реактивных зависимостей внутри функции.