> Что такое reactive и ref во Vue Composition API, для чего они нужны и чем отличаются? (Vue.js)
Уровень: junior · Роль: frontend · Категория: Технические вопросы
Компании: The Tribe, ЛОЦИЯ
Стек: Vue.js
> Пример ответа
reactive и ref - это два основных инструмента Vue Composition API для создания реактивных данных. Они нужны, чтобы Vue отслеживал изменения переменных и автоматически обновлял интерфейс.
ref используется для примитивных значений (числа, строки, булевы) или для создания реактивной ссылки на объект. Он оборачивает значение в объект с единственным свойством .value, через которое происходит доступ и изменение. Например:
const count = ref(0) - доступ через count.value. В шаблоне .value раскрывается автоматически.
reactive предназначен для объектов (включая массивы и Map/Set). Он делает сам объект реактивным, без обёртки. Например:
const state = reactive({ name: 'Alice', age: 30 }) - свойства доступны напрямую: state.name. Однако при замене всего объекта реактивность теряется, поэтому для переприсваивания лучше использовать ref.
Главные отличия:
-
refработает с примитивами и требует.valueв JavaScript (но не в шаблоне). -
reactiveработает только с объектами, не требует.value, но не поддерживает примитивы и замену целиком. -
refможно передавать в функции и сохранять реактивность, так как ссылка остаётся той же;reactiveпри деструктуризации теряет реактивность (нуженtoRefs).
На практике часто используют ref для простых значений и reactive для сложных объектов, но оба инструмента взаимозаменяемы - выбор зависит от контекста.
> Похожие задачи по frontend
Как реализовать анимацию блока с подпрыгиванием, изменением цвета и улетом за пределы экрана
Что выбрать для анимации: CSS или JavaScript библиотеку и почему
Как задать значение по умолчанию для defineProps во Vue с TypeScript
Что такое ViewModel во Vue и как он работает
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью