useRoute
Композабл useRoute возвращает текущий маршрут.
В шаблоне компонента Vue вы можете получить доступ к маршруту с помощью
$route
.Пример
В следующем примере мы вызываем API через useFetch
, используя динамический параметр страницы - slug
- как часть URL.
~/pages/[slug].vue
<script setup lang="ts">
const route = useRoute()
const { data: mountain } = await useFetch(`/api/mountains/${route.params.slug}`)
</script>
<template>
<div>
<h1>{{ mountain.title }}</h1>
<p>{{ mountain.description }}</p>
</div>
</template>
Если вам нужно получить доступ к параметрам запроса маршрута (например, example
в пути /test?example=true
), то вы можете использовать useRoute().query
вместо useRoute().params
.
API
Помимо динамических параметров и query-параметров, useRoute()
также предоставляет следующие вычисляемые ссылки, связанные с текущим маршрутом:
fullPath
: кодированный URL, связанный с текущим маршрутом, который содержит путь, запрос и хэшhash
: декодированная хэш-секция URL, начинающаяся с #query
: access route query parametersmatched
: массив нормализованных маршрутов, совпадающих с текущим местоположением маршрутаmeta
: пользовательские данные, прикрепленные к записиname
: уникальное имя для записи маршрутаpath
: закодированная часть с именем пути в URLredirectedFrom
: местоположение маршрута, к которому пытались получить доступ, прежде чем попасть в текущее местоположение маршрута
Браузеры не отправляют фрагменты URL (например,
#foo
) при выполнении запросов. Поэтому использование route.fullPath
в вашем шаблоне может вызвать проблемы с гидрацией, так как это будет включать фрагмент на клиенте, но не на сервере.