intermediate

Reactivity во Vue

Понимайте ref, reactive, computed, watch, отслеживание зависимостей, unwrap и планирование обновлений.

Reactivity Vue 3 на Proxy. `ref` оборачивает одно значение (unwrap в шаблонах); `reactive` отслеживает граф объектов. `computed` кэширует до смены зависимостей; `watch` / `watchEffect` — side effects.

					const count = ref(0);
const state = reactive({ items: [] });
watch(count, (n) => console.log('count', n));
				

Обновления батчатся асинхронно в одном тике. В script для ref читайте `.value`; в шаблонах auto-unwrap.

На интервью: dependency tracking против явного setState в React; почему теряется `reactive` при destructure; shallowRef для крупных immutable blob.

Типовые ошибки: замена всего reactive root вместо мутации полей, deep watch на огромных деревьях, нереактивные class instances без `markRaw`.

Компромисс: удобный auto-tracking против mental model ref/unwrap/коллекций.

Чеклист:

  • ref для примитивов и переназначаемых singles.
  • reactive для мутируемых графов.
  • computed для чистого вывода.
  • watch с flush/deep только по необходимости.