useRouter
Экземпляр роутера через композабл useRouter.
pages/index.vue
<script setup lang="ts">
const router = useRouter()
</script>
В шаблоне для того же достаточно $router:
pages/index.vue
<template>
<button @click="$router.back()">
Назад
</button>
</template>
Если в проекте есть каталог pages/, поведение useRouter совпадает с экземпляром из vue-router.
Работа с таблицей маршрутов
addRoute(): добавляет маршрут; черезparentNameможно вложить дочерний маршрут.removeRoute(): удаляет маршрут по имени.getRoutes(): возвращает все записи маршрутов.hasRoute(): проверяет наличие маршрута с заданным именем.resolve(): нормализованное представление локации; в результате естьhrefс учётомbase.
Пример
const router = useRouter()
router.addRoute({ name: 'home', path: '/home', component: Home })
router.removeRoute('home')
router.getRoutes()
router.hasRoute('home')
router.resolve({ name: 'home' })
router.addRoute() дополняет конфигурацию маршрутов и удобен в плагинах Nuxt. router.push() сразу запускает навигацию — его чаще используют в страницах, компонентах и композаблах.Интерфейс History браузера
back(): шаг назад по истории, аналогrouter.go(-1).forward(): шаг вперёд, аналогrouter.go(1).go(): произвольный сдвиг по истории.push(): переход с новой записью в истории. ПредпочтительнееnavigateTo.replace(): переход с заменой текущей записи. ПредпочтительнееnavigateTo.
Пример
const router = useRouter()
router.back()
router.forward()
router.go(3)
router.push({ path: '/home' })
router.replace({ hash: '#bio' })
Навигационные хуки
У useRouter есть afterEach, beforeEach и beforeResolve для перехвата навигации.
В Nuxt проще опираться на middleware маршрутов — отдельный механизм защиты маршрутов, удобнее в повседневной разработке.
Промисы и ошибки
isReady(): промис, который выполняется после первой навигации.onError: обработчик неперехваченных ошибок навигации.
Универсальный роутер без pages/
Без каталога pages/ useRouter возвращает универсальный экземпляр с похожим API; не все методы ведут себя так же, как в полноценном vue-router.