Маршрутизация с помощью Vue Router 4: полное руководство
Vuejs 3 поставляется с некоторыми новыми и удивительными функциями. Некоторые из этих функций включают, среди прочего, оптимизацию, улучшенную поддержку TypeScript, глобальное монтирование, переход на новый составной API.
В этой статье мы собираемся изучить vue-router 4, официальную и новейшую библиотеку для обработки маршрутизации в Vue.js. Маршрутизация позволяет нам перемещаться между приложениями туда и обратно. Мы настроим маршрутизацию в приложении Vue.js и рассмотрим некоторые полезные возможности, встроенные в vue-router 4.
В этой статье мы предполагаем, что у вас есть каркас приложения Vue.js 3. Ознакомьтесь с этим руководством, если вы хотите создать новое приложение Vue.js.
Монтаж
В зависимости от предпочитаемого менеджера пакетов вы можете установить vue-router 4, выполнив следующую команду на своем терминале.
Использование NPM
npm install vue-router@4
Использование пряжи
yarn add vue-router@4
После успешной установки мы теперь настроим vue-router, чтобы мы могли обрабатывать маршрутизацию в нашем приложении.
Настройка маршрутов
В корневом каталоге вашего файла создайте папку и назовите ее router. Внутри папки создайте файл с именем index.ts. Этот файл будет содержать все маршруты/пути нашего приложения с необходимыми конфигурациями.
В приведенном выше фрагменте кода мы импортировали createWebHistory и createRouter из маршрутизатора Vue. createWebHistory позволяет нам реализовывать различные режимы веб-маршрутизации. Мы можем использовать режимы Hash, HTML 5 и Memory. В нашей конфигурации здесь мы используем режим HTML 5, установив `history: createWebHistory()`
В режиме хеширования используется (#) перед фактическим URL-адресом, что может привести к тому, что ваш URL-адрес будет выглядеть немного неаккуратно, а также негативно повлияет на SEO. Если вы хотите попробовать режим хеширования, импортируйте createWebHashHistory из vue-router и установите `history: createWebHashHistory()`.
То же самое относится к режиму памяти, импортируйте createMemoryHistory из vue-router и установите `history: createMemoryHistory()`.
createRouter позволит нам создать экземпляр нашего маршрутизатора и позволит нам передавать маршруты, которые мы указали выше.
Найдите файл app.vue и укажите router-view где-нибудь в шаблоне. В этом разделе будут отображены все совпадающие маршруты.
Установка маршрутизатора
Теперь мы настроили нашу простую маршрутизацию, но пока не можем получить доступ к нужным путям. Нам нужно смонтировать весь экземпляр маршрутизатора в файл записи приложения, чтобы наше приложение могло знать о предоставленной нами маршрутизации.
Откройте файл main.js или main.ts, если во время установки вы выбрали TypeScript и у вас есть следующее.
Здесь мы импортируем файл конфигурации маршрутизатора, и все приложение регистрирует экземпляр маршрутизатора. Теперь вся наша конфигурация маршрутизации доступна во всем приложении, и мы можем перемещаться по /home
/about
и /contact.
Если вы попытаетесь перейти к несконфигурированному маршруту, такому как /users
, Vuejs выдаст ошибку. Позже в этой статье мы увидим, как обрабатывать и перехватывать маршруты, не настроенные в нашем приложении.
Чтобы связать настроенные нами маршруты, вам нужно использовать router-link
, как показано ниже. Использование этого полезно, так как он не обновляет страницу, в отличие от тега a
, а также упрощает работу vue-router с функциональностью.
// go to /contact page <router-link to="/contact">Contact</router-link> // go to /about page <router-link to="/about">About</router-link>
перенаправляет
Мы можем легко обрабатывать перенаправления с помощью vue-router. Предположим, что вы хотите, чтобы пользователи, посещающие путь /home
, перенаправлялись на /
, мы можем справиться с этим, как показано ниже.
Теперь, когда пользователь перейдет к /home
, он будет перенаправлен на маршрут /
. Перенаправления также могут быть полезны, когда вы хотите разрешить доступ к определенным маршрутам только определенным пользователям.
Ленивые маршруты загрузки
Ленивая загрузка маршрутов гарантирует, что загружаются только необходимые маршруты, а другие загружаются по требованию, когда это необходимо. Это обеспечивает некоторое улучшение производительности, особенно если у вас большое приложение с большим количеством маршрутов и компонентов.
Для отложенной загрузки маршрутов вам нужно только добавить динамический импорт к маршрутам, которые вы хотите отложить. Мы можем реализовать это, как показано ниже.
Вложенные маршруты
С помощью vue-router мы можем настроить вложенные маршруты, т. е. маршруты от родителей к дочерним. Компоненты могут разветвляться на дочерние компоненты, как показано на изображении ниже. При вложении дочерних маршрутов из родительских нам нужно включить /router-view
, чтобы отобразить совпадающие дочерние маршруты.
Мы можем установить вложенные маршруты, как показано ниже.
Метаполя маршрута
Метаполя маршрута дают нам возможность добавлять информацию о маршрутах, которой мы можем манипулировать позже. Мы можем указать маршруты, которые требуют аутентификации для доступа или другой соответствующей информации, которую мы можем захотеть.
Здесь мы предоставили свойству поля /meta
некоторую информацию. На экземпляре маршрутизатора мы можем проверить, аутентифицирован ли пользователь, мы предоставляем доступ к этому конкретному пути. Мы также можем предоставить такую информацию, как /title
.
Не найденные маршруты
Мы также можем поймать некоторые маршруты, которые не настроены в нашей маршрутизации. Мы можем вернуть специальный компонент 404 Not Found. Чтобы поймать ненастроенные маршруты, мы используем /catchall *
.
Динамическая маршрутизация
Динамическая маршрутизация гарантирует, что вы сопоставите разные маршруты с одним и тем же компонентом. Предположим, у вас есть разные сообщения, содержащие разные cid
, и вы хотите отображать один и тот же компонент в зависимости от предоставленного cid
param.
Вы можете настроить маршруты для динамической маршрутизации, как показано ниже. Вам нужно только добавить двоеточие после пути и указать имя параметра. В данном случае у нас есть параметр cid
.
Доступ к параметрам маршрута
В шаблоне компонента вы можете получить доступ к параметру cid
, как показано ниже 👇.
<template>{{ $route.param.cid }}</template>
Перед тем, как ты уйдешь
Я надеюсь, что вы нашли эту статью полезной в том, как обрабатывать маршрутизацию с помощью vue-router 4 в приложении Vuejs 3.
Время от времени я отправляю эксклюзивные электронные письма с советами, статьями, приложениями, книгами и идеями, которые я считаю полезными и связанными с техническим письмом.
Присоединяйтесь к тем, кто хочет улучшить свои технические навыки письма.
Больше читает
Повышение уровня кодирования
Спасибо, что являетесь частью нашего сообщества! Перед тем, как ты уйдешь:
- 👏 Хлопайте за историю и подписывайтесь на автора 👉
- 📰 Смотрите больше контента в публикации Level Up Coding
- 🔔 Подписывайтесь на нас: Twitter | ЛинкедИн | "Новостная рассылка"
🚀👉 Присоединяйтесь к коллективу талантов Level Up и найдите прекрасную работу