2.请说明在 Vue3 中如何进行路由传参(包括query参数和params参数)。
时间: 2024-10-28 10:11:16 浏览: 32
在Vue3中,路由传参通常通过`this.$router`对象来完成。主要有两种类型的参数可以传递:query参数和params参数。
1. Query参数(查询字符串参数):用于传递简单的键值对数据,不会污染URL,适合无状态的数据。可以在组件内的methods中使用`this.$route.query`访问这些参数,例如:
```javascript
// 路由配置
const router = new VueRouter({
routes: [
{ path: '/example', component: ExampleComponent, query: { key: 'value'} }
]
})
// 组件内部
export default {
methods: {
fetchData() {
const queryParams = this.$route.query;
console.log(queryParams); // 输出:{ key: 'value' }
}
}
}
// 跳转时传递参数
this.$router.push('/example?key=value');
```
2. Params参数(路径参数):用于动态匹配路径的一部分,如用户ID、产品ID等有固定结构的数据。在路由配置时使用冒号(`:`)包裹参数名,然后在组件里使用`this.$route.params`访问。比如:
```javascript
// 路由配置
const router = new VueRouter({
routes: [
{ path: '/user/:userId', component: UserComponent },
]
})
// 组件内部
export default {
props: ['userId'], // 需要在组件上声明props接收参数
mounted() {
console.log(this.userId); // 输出:从URL解析出的 userId 参数值
}
}
// 跳转时传递参数
this.$router.push({ name: 'user', params: { userId: '123456' } });
```
阅读全文