Frontend Lessons
← Все материалы

Vue 3

Как устроено реактивное состояние

От обычной переменной к интерфейсу, который обновляется вместе с данными.

В обычном JavaScript присваивание переменной нового значения само по себе не меняет разметку. Нужно найти элемент и обновить его текст. Vue позволяет описать связь между состоянием и шаблоном: когда используемые данные меняются, фреймворк планирует обновление интерфейса.

Начните с ref

Функция ref оборачивает значение в реактивный объект. В JavaScript читать и менять его нужно через .value. В шаблоне верхнеуровневый ref обычно разворачивается автоматически, поэтому там можно писать просто count.

<script setup>
import { ref, computed } from 'vue'
const count = ref(0)
const doubled = computed(() => count.value * 2)
</script>

<template>
  <button @click="count++">{{ count }}</button>
  <p>Удвоенное значение: {{ doubled }}</p>
</template>

Вычисления и побочные эффекты

computed подходит для значения, которое можно получить из других данных: например, для отфильтрованного списка. Не делайте сетевые запросы внутри вычисляемого свойства. Для побочных эффектов есть обработчики событий и watch.

Проверьте понимание

Добавьте кнопку сброса и вычисляемую подпись «чётное» или «нечётное». Храните только счётчик, а подпись вычисляйте из него. Это уменьшает риск рассинхронизации двух переменных.