Перейти к основному содержимому

Vue — реактивность и Composition API


Маршрут Vue

ШагСтатья
1Первая программа
2Обзор
3Вы здесь
4Router и Pinia
5Production

Реактивность

Vue отслеживает зависимости и перерисовывает шаблон при изменении данных.

Composition API (<script setup>):

<script setup>
import { ref, computed } from 'vue';

const count = ref(0);
const double = computed(() => count.value * 2);
</script>

<template>
<button @click="count++">{{ count }} (×2 = {{ double }})</button>
</template>
APIКогда
refпримитивы и одно значение
reactiveобъект целиком
computedпроизводное значение
watch / watchEffectпобочные эффекты

В шаблоне ref разворачивается автоматически; в script — .value.


Однофайловый компонент (SFC)

.vue файл:

<script setup>
defineProps({ title: String });
const emit = defineEmits(['save']);
</script>

<template>
<h2>{{ title }}</h2>
<button @click="emit('save')">Сохранить</button>
</template>

<style scoped>
h2 { color: var(--ifm-color-primary); }
</style>

scoped ограничивает стили компонентом.


Options API — устаревший стиль

export default {
data() { return { count: 0 }; },
methods: { inc() { this.count++; } },
};

В новых проектах пишут на Composition API (<script setup>). Options API всё ещё встречается в старых кодовых базах.


Директивы

ДирективаПример
v-if / v-elseусловие
v-forv-for="item in items" :key="item.id"
v-modelдвусторонняя привязка
v-on / @события
v-bind / :атрибуты

Связанные материалы

  • 284.md — Vue Router, Pinia, Vite
  • 282.md — практика
  • 281.md — справочник