> Как мигрировать на Vue 3 с Composition API (Vue.js)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: TradeLink
Стек: Vue.js
> Пример ответа
Миграция на Vue 3 с Composition API - это не просто обновление синтаксиса, а смена парадигмы организации логики. Основные шаги:
-
Установите Vue 3 и обновите зависимости
Заменитеvueнаvue@3, аvue-template-compilerна@vue/compiler-sfc. Для совместимости с Vue 2 используйте@vue/compat(режим миграции). -
Перепишите компоненты с Options API на Composition API
Вместоdata,methods,computedиспользуйтеsetup()или<script setup>. Пример:<script setup> import { ref, computed } from 'vue' const count = ref(0) const double = computed(() => count.value * 2) const increment = () => count.value++ </script> -
Замените устаревшие API
-
$listenersи$attrsобъединены в$attrs. -
v-modelтеперь поддерживает несколько моделей черезv-model:propName. -
$on,$off,$onceудалены - используйте внешние библиотеки (например,mitt). -
filterудалён - замените на методы или computed.
-
-
Обновите роутер и Vuex
-
vue-router@4с новым API (например,createRouter). -
vuex@4или переходите на Pinia (рекомендуется для Composition API).
-
-
Используйте композиции (composables)
Выносите повторяемую логику в функции сref/reactive- это ключевое преимущество Composition API. -
Проверьте сторонние библиотеки
Убедитесь, что они поддерживают Vue 3 (например, Vuetify 3, Element Plus). -
Тестируйте
Используйте@vue/test-utils@2и обновите тесты, учитывая изменения в реактивности и рендеринге.
Постепенная миграция через @vue/compat позволит запустить старый код в Vue 3, но лучше сразу переписать ключевые компоненты. Composition API даёт более чистую архитектуру и лучшую переиспользуемость.
> Похожие задачи по frontend
Почему Vue удобен для разбивки кода на компоненты и переиспользования по сравнению с чистым JavaScript
Что такое двустороннее связывание в Vue
Какие проблемы встречаются при работе с Nuxt
Вызывается ли watchEffect сразу или только при изменении данных во Vue
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью