</> Praktum

Главная / Vue / computed во Vue

Справочник Vue

computed: вычисляемые значения Vue

computed создаёт значение, которое зависит от реактивных данных. Vue отслеживает зависимости и пересчитывает результат только после их изменения.

Рабочий пример

<script setup>
import { ref, computed } from "vue";
const products = ref([{ price: 100 }, { price: 250 }]);
const total = computed(() =>
  products.value.reduce((sum, item) => sum + item.price, 0)
);
</script>
<template><strong>{{ total }} ₽</strong></template>

В script computed возвращает ref, поэтому читается через .value. В шаблоне Vue разворачивает значение автоматически. Обычный getter должен оставаться без побочных эффектов.

Когда применять

Применяй computed для отфильтрованного списка, общей цены и форматированной подписи. Если требуется выполнить действие при изменении, используй watch.

Проверь пример самостоятельно: измени исходные данные, убери одну строку и сравни результат. Такой короткий эксперимент помогает увидеть роль каждого свойства или метода и не превращает обучение в механическое копирование.

Частые ошибки

  • Менять state внутри getter
  • Вызывать computed как обычную функцию
  • Заменять computed методом и терять кэширование

Задание

Создай поиск по товарам и computed-список, который зависит от строки запроса.

Проверка: результат должен работать с клавиатуры, не создавать ошибок в консоли и оставаться понятным без пояснений автора.

Ещё в разделе Vue