useRoute
useRouteコンポーザブルは現在のルートを返します。
Vueコンポーネントのテンプレート内では、
$route
を使用してルートにアクセスできます。例
次の例では、動的なページパラメータ - slug
- をURLの一部として使用して、useFetch
経由でAPIを呼び出します。
~/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>
ルートクエリパラメータ(例えば、パス/test?example=true
のexample
)にアクセスする必要がある場合は、useRoute().params
の代わりにuseRoute().query
を使用できます。
API
動的パラメータとクエリパラメータに加えて、useRoute()
は現在のルートに関連する以下の算出参照も提供します
fullPath
: パス、クエリ、ハッシュを含む現在のルートに関連付けられたエンコードされたURLhash
: #で始まるURLのデコードされたハッシュセクションquery
: ルートクエリパラメータへのアクセスmatched
: 現在のルートロケーションを持つ正規化された一致ルートの配列meta
: レコードに添付されたカスタムデータname
: ルートレコードの一意の名前path
: URLのエンコードされたパス名セクションredirectedFrom
: 現在のルートロケーションに到達する前にアクセスしようとしたルートロケーション
ブラウザは、リクエストを行う際にURLフラグメント(例えば
#foo
)を送信しません。そのため、テンプレートでroute.fullPath
を使用すると、クライアント側にはフラグメントが含まれますが、サーバー側には含まれないため、ハイドレーションの問題が発生する可能性があります。