Главная / Vue
Фреймворк для интерфейсов
Vue: собери интерфейс без лишнего шума
Vue помогает связать данные и разметку так, чтобы интерфейс обновлялся сам. Начнём с базовых директив, компонентов и небольших задач.
- Нужен JavaScript
- 6 тем
- Понятные примеры
Программа
Учимся на маленьких интерфейсах
Каждая тема — отдельный понятный шаг: данные, условия, списки и компоненты.
Шаблон и директивы
Выводим данные и управляем разметкой.
02 / реактивностьref и computed
Меняем данные и видим обновления на странице.
03 / частиКомпоненты
Выносим повторяющиеся элементы в отдельные блоки.
100 / новая темаcomputed во Vue
Получаем производные данные и используем кэширование.
101 / новая темаv-model во Vue
Работаем с input, checkbox, select и модификаторами.
102 / новая темаv-for и key во Vue
Перебираем массив и задаём стабильный key.
Практикумы
Короткие задачи по Vue
Короткие задачи на одну тему: прочитай, повтори в песочнице и проверь результат.
Клик во Vue
В Vue клик записывается прямо в шаблоне и меняет реактивное значение.
практикумКороткое сообщение после действия
После сохранения человек должен увидеть подтверждение, и оно не смешивается с текстом ошибки.
практикумПоле ввода во Vue
Поле и переменная должны смотреть в одну сторону: что напечатано, то и хранится.
практикумУсловие во Vue
v-if убирает элемент, пока условие ложно. v-show только прячет его стилем.
Все материалы
Все материалы раздела Vue
Учебные материалы
Практика: список покупок
Добавь товар в список, отметь купленные и потренируй реактивные данные.
Подробнее
Шаблон читает состояние, а не запоминает его сам
В Vue ты описываешь разметку и реактивные данные. Когда меняется ref или поле reactive, шаблон обновляется. Не ищи элемент через document.querySelector, чтобы записать в него ту же самую строку: источник правды тогда раздвоится.
Директивы в шаблоне — это связь. v-bind подставляет значение в атрибут, v-on слушает событие, v-model соединяет поле и данные в обе стороны. Обычный текст в усах выводится как текст, а не как HTML.
<script setup>
import { ref } from "vue";
const title = ref("Первая страница");
</script>
<template>
<label>
Название
<input v-model="title">
</label>
<h1>{{ title }}</h1>
</template>С чего начать раздел
- Директивы показывают данные и прячут блоки по условию.
- Реактивность объясняет, почему одно поле обновляет страницу, а другое нет.
- Компоненты делят интерфейс, когда один файл разросся.
v-forиv-modelнужны почти в любом маленьком списке задач.
Где обычно теряется обновление
Замена свойства у обычного объекта, который не был реактивным, ничего не перерисует. То же с массивом, если ты хранишь его вне ref. И ещё шаблон может читать правильное значение, но обработчик меняет копию. Смотри в Vue DevTools, какое состояние лежит в компоненте после клика.