vue3使用 params传参
时间: 2025-05-16 17:00:25 浏览: 16
<<
在 Vue 3 中,`params` 是一种用于向路由页面传递参数的方式。Vue Router 提供了 `params` 参数机制以便于动态地将数据从一个页面传递到另一个页面。
### 使用步骤
#### 安装与配置 Vue Router
首先确保已经安装并正确设置了 Vue Router:
```bash
npm install vue-router@next
```
然后在项目中引入并设置路由器(假设使用的是 Composition API):
```javascript
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;
```
在这个例子中,`:id` 就是我们要传递的一个 `param`。
#### 在组件中导航时传入 params
当跳转至目标路径时,你可以通过编程式导航或直接链接的形式添加 `params`。
**示例 - 编程式导航**
```javascript
this.$router.push({
name: 'User',
params: { id: 123 } // 这里的 id 即为 param 值
});
```
**示例 - HTML 链接形式**
```html
<router-link :to="{name:'User', params:{id:456}}">Go to User</router-link>
```
注意:如果采用完整 URL 字符串,则无法正常解析出 `params`, 应该避免以下写法:
```javascript
this.$router.push('/user/789'); // 不推荐!不会触发命名路由中的 params。
```
#### 接收参数
要在接收端获取这些 `params` ,可以在对应的组件内使用 `$route.params` 属性读取它们。
例如,在名为 `User.vue` 的组件里打印当前用户的 ID 号码:
```javascript
<script setup>
import { useRoute } from 'vue-router'
const route = useRoute()
console.log(route.params.id); // 输出如 "123", "456" 或者其他指定值。
</script>
<template>
<div>User {{ route.params.id }}</div> <!-- 显示用户编号 -->
</template>
```
### 注意事项
- 必须保证定义的路径有匹配相应的占位符 (比如 `/user/:id`) 才能成功捕获 `params`.
- 当前活动的路由发生变化后会重新渲染组件实例;因此即使只是改变了一个现有的参数而没有切换到新的视图上,仍会再次调用生命周期钩子等逻辑块。
阅读全文
相关推荐

















