Руководство
Основы
- Установка
- Введение
- Экземпляр Vue
- Синтаксис шаблонов
- Вычисляемые свойства и слежение
- Работа с классами и стилями
- Условная отрисовка
- Отрисовка списков
- Обработка событий
- Работа с формами
- Основы компонентов
Продвинутые компоненты
- Регистрация компонентов
- Входные параметры
- Пользовательские события
- Слоты
- Динамические и асинхронные компоненты
- Обработка крайних случаев
Переходы и анимации
- Анимирование списков и появления/исчезновения
- Анимирование переходов между состояниями
Переиспользование и композиция
- Примеси
- Пользовательские директивы
- Render-функции и JSX
- Плагины
- Фильтры
Инструментарий
- Однофайловые компоненты
- Тестирование
- Поддержка TypeScript
- Публикация на production
Масштабирование
- Роутинг
- Управление состоянием приложения
- SSR. Отрисовка на стороне сервера
- Безопасность
Продвинутые темы
- Подробно о реактивности
Вопросы миграции
- Миграция с Vue 1.x
- Миграция с Vue Router 0.7.x
- Миграция с Vuex 0.6.x на 1.0
Мета
- Сравнение с другими фреймворками
- Присоединяйтесь к сообществу Vue.js!
- Познакомьтесь с командой
Эта документация для версий v2.x и ранее. Для v3.x, документация на русском здесь.
Миграция с Vue Router 0.7.x
Только Vue Router 2 совместим с Vue 2, поэтому если вы обновляете Vue, вы должны также обновить и Vue Router. Поэтому мы включили описание процесса миграции в основную документацию. Для подробной инструкции по использованию новой версии Vue Router, обратитесь к документации Vue Router.
Инициализация роутера
router.start
заменено
Больше нет никакого специального API для инициализации приложения, с использованием Vue Router. Это означает, что вместо:
|
вы должны передать роутер как свойство в экземпляр Vue:
|
или, если вы используете runtime-сборку Vue:
|
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти вызовы router.start
.
Объявление путей
router.map
заменено
Теперь пути объявляются как массив в свойстве routes
при установке роутера. Например, эти пути:
|
будут объявлены как:
|
Синтаксис массива позволяет сделать согласование путей более предсказуемым, так как итерация по объекту не гарантирует использование одинакового порядка свойств во всех браузерах.
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти вызовы router.map
.
router.on
удалено
Если вам нужно программно генерировать пути при запуске приложения, вы можете сделать это, динамически добавляя определения путей в массив. Например:
|
Если вам нужно добавить новые пути после того, как был создан экземпляр роутера, вы можете заменить свойство match
новым, включающим в себя путь, который вы хотите добавить:
|
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти вызовы router.on
.
router.beforeEach
изменён
router.beforeEach
теперь работает асинхронно и принимает функцию next
третьим аргументом.
|
|
subRoutes
переименовано
Переименовано в children
для соответствия Vue другим библиотекам маршрутизации.
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти использование свойства subRoutes
.
router.redirect
заменено
Теперь это опция при объявлении роутера. Например, вам нужно заменить:
|
в вашей конфигурации routes
на объявление, показанное ниже:
|
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти вызовы router.redirect
.
router.alias
заменено
Теперь это опция при объявлении роутера, которой вы присваиваете псевдоним. Например, вам нужно заменить:
|
в вашей конфигурации routes
на объявление, показанное ниже:
|
Если вам нужно несколько псевдонимов, вы можете также использовать синтаксис массива:
|
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти вызовы router.alias
.
Произвольные свойства пути заменено
Произвольные свойства пути теперь должны быть помещены в новое свойство meta
, чтобы избежать конфликтов с будущей функциональностью. Например, если вы определили:
|
вы должны заменить это на:
|
Затем, для дальнейшего доступа к этому свойству пути, вы должны пройти через свойство meta
, например:
|
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти произвольные свойства пути, не помещённые в свойство `meta`.
Сопоставление путей
Сопоставление путей теперь использует path-to-regexp под капотом, что делает его гораздо более гибким, чем было ранее.
Один или более именованных параметров изменено
Синтаксис немного изменился, поэтому /category/*tags
, например, должно быть заменено на /category/:tags+
.
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти использование устаревшего синтаксиса.
Ссылки
v-link
заменено
Директива v-link
заменена на новый компонент <router-link>
, так как за данный тип работ теперь отвечают только компоненты во Vue 2. Это означает, что всякий раз, когда у вас есть ссылка, как эта:
|
Вам необходимо изменить её следующим образом:
|
Запомните, что target="_blank"
больше не поддерживается в <router-link>
, поэтому, если вам нужно открыть ссылку в новой вкладке, вы должны использовать тег <a>
.
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти использование директивы v-link
.
v-link-active
заменено
Директива v-link-active
также была заменена на атрибут tag
в компоненте <router-link>
. Например, вам нужно заменить это:
|
на:
|
Тег <a>
будет фактически ссылкой (с правильным атрибутом href
), но активный класс будет применён к родительскому тегу <li>
.
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти использование директивы v-link-active
.
Программная навигация
router.go
изменено
Для соответствия HTML5 History API, router.go
теперь используется только для навигации вперёд/назад, в то время как router.push
используется для перехода на конкретную страницу.
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти использование router.go
вместо необходимого использования router.push
.
Опции роутера: режимы
hashbang: false
удалено
Символ хэша больше не требуется для Google при сканировании URL, так что они больше не используются по умолчанию (или в качестве опции) для хеш-стратегии.
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти использование опции hashbang: false
.
history: true
заменено
Все параметры режима роутера были объединены в опцию mode
. Обновите:
|
на:
|
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти использование опции history: true
.
abstract: true
заменено
Все параметры режима роутера были объединены в опцию mode
. Обновите:
|
на:
|
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти использование опции abstract: true
.
Опции роутера: разное
saveScrollPosition
заменено
Было заменено на опцию scrollBehavior
которая принимает функцию, поэтому поведение прокрутки стало полностью настраиваемым - даже для каждого пути. Это открывает много новых возможностей, но для возврата старого поведения:
|
Вы можете заменить это на:
|
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти использование опции saveScrollPosition: true
.
root
переименовано
Переименовано в base
для соответствия HTML-элементу <base>
.
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти использование опции root
.
transitionOnLoad
удалено
В этой опции нет необходимости, теперь, когда Vue имеет явное управление переходами appear
.
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти использование опции transitionOnLoad: true
.
suppressTransitionError
удалено
Удалено из-за упрощения системы хуков. Если вам действительно нужно отловить ошибки переходов, вы можете использовать вместо этого try
…catch
.
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти использование опции suppressTransitionError: true
.
Хуки путей
activate
заменено
Вместо этого используйте beforeRouteEnter
в компоненте.
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти использование хука activate
.
canActivate
заменено
Вместо этого используйте beforeEnter
в компоненте.
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти использование хука canActivate
.
deactivate
удалено
Вместо этого используйте хуки beforeDestroy
или destroyed
.
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти использование хука deactivate
.
canDeactivate
заменено
Вместо этого используйте beforeRouteLeave
в компоненте.
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти использование хука canDeactivate
.
canReuse: false
удалено
Больше не существует вариантов использования этого в новой версии Vue Router.
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти использование опции canReuse: false
.
data
заменено
Свойство $route
теперь реактивно, поэтому вы можете просто использовать метод-наблюдатель для отслеживания изменения пути, например:
|
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти использование хука data
.
$loadingRouteData
удалено
Определите ваше свойство (например, isLoading
), затем обновите состояние загрузки с помощью опции watch
на пути. Например, при предварительном получении данных с использованием axios:
|
Обновление
Запустите миграционный помощник в вашем проекте, чтобы найти использование свойства $loadingRouteData
.