このブログでは、Vue-router でパラメータを渡す方法と、パラメータを失わずに URL に結合せずにページのパラメータを更新する方法を詳しく紹介します。
Vue-Router がパラメータジャンプを実行する 3 つの方法
Vue-Router は、次のようにパラメーターを渡すさまざまな方法を提供します。
1. Parmas ルーティング パス パラメータ
ルートを定義するときは、ルーティング パスにパラメータ プレースホルダを追加できます (例: /user/:id
)。
ルーティング パスの :
で始まるのはパラメータ プレースホルダで、パラメータ名は id
です。このルートに一致する場合、たとえば /user/1
にアクセスすると、パラメータ ID がコンポーネントの this.$route.params
オブジェクトに入力されます。
2. クエリパラメータを渡す
クエリ パラメータは、URL の後にパラメータとともに渡されます (例: /user?id=1
)。
Vue-Router のアクセス クエリ パラメータは、$route.query
を通じて取得できます。例:
const user_id = this.$route.query.id
3. パラメータを渡す小道具
ルーティング コンポーネントでは、props を通じてパラメータをコンポーネントに渡すことができます。ルーティング設定で props
属性を設定する必要があります:
const router = new VueRouter({
routes: [
{
path: '/user/:id',
component: User,
props: true
}
]
})
この場合、パラメータはコンポーネントのprops
に設定されます。たとえば、/user/1
にアクセスすると、パラメータ ID がコンポーネントに渡されます。コンポーネント User. の小道具。this.id
経由でアクセスできます。
- コンポーネント内のルーティングパラメータを取得する
コンポーネント内のthis.$route.params
または this.$route.query
を通じてルーティング パラメータを取得でき、$route
を使用して直接アクセスできます。コンポーネント内のルーティング情報。
- ルート名に基づいてパラメータを渡します
ルート名を通じてパラメータを渡すには、ルートを定義するときに name
属性を設定する必要があります。例:
const router = new VueRouter({
routes: [
{
path: '/user/:id',
name: 'user',
component: User
}
]
})
user
という名前のルートがここで定義されており、name
を通じて他の場所からアクセスできます。例:
this.$router.push({
name: 'user',
params: {
id: 1
}
})
は、this.$route.params
を通じてパラメータを取得できます。