Vue3+router动态传参
warning:
这篇文章距离上次修改已过190天,其中的内容可能已经有所变动。
在Vue3中,使用Vue Router进行动态传参时,可以在路由定义中使用动态段(:paramName
)来实现。然后,在路由导航中,可以通过$route.params
来访问这些参数。
以下是一个简单的例子:
- 定义路由:
// router/index.js
import { createRouter, createWebHistory } from 'vue-router'
const routes = [
{
path: '/user/:id',
name: 'User',
component: () => import('../components/User.vue')
},
// ...其他路由
]
const router = createRouter({
history: createWebHistory(),
routes
})
export default router
- 在组件中使用动态路由参数:
// components/User.vue
<template>
<div>
User ID: {{ $route.params.id }}
</div>
</template>
<script>
export default {
// 通过路由守卫或路由元信息来验证参数
beforeRouteEnter(to, from, next) {
// 在这里可以访问 `to.params.id`
if (to.params.id > 0) {
next();
} else {
next(false); // 导航终止
}
}
}
</script>
- 导航到带参数的路由:
// 在其他组件中
this.$router.push({ name: 'User', params: { id: 123 } });
在这个例子中,我们定义了一个带有动态参数id
的路由。在User
组件中,我们通过$route.params.id
来访问这个参数。在导航到该路由的时候,我们使用this.$router.push
来传递参数。
评论已关闭