vue-router动态路由传多个参
时间: 2024-11-13 12:16:52 浏览: 4
Vue Router 动态路由允许你在 URL 中传递参数,并通过这些参数动态地渲染视图或控制组件的行为。当你需要向路由中添加多个参数时,你可以将它们作为对象或数组的形式传递。
**对象形式**:
```javascript
// 定义动态路由
const dynamicRoute = {
path: '/users/:userId/books/:bookId', // userId 和 bookId 都是动态参数
component: UserBookDetails,
}
// 路由匹配时,可以通过 this.$router.params 获取参数
this.$router.push({ name: 'dynamicRoute', params: { userId: 1, bookId: 2 } });
```
在组件内部,可以像下面这样访问这些参数:
```javascript
export default {
computed: {
userId() {
return this.$route.params.userId;
},
bookId() {
return this.$route.params.bookId;
}
}
}
```
**数组形式(用于嵌套路径)**:
如果参数有层级结构,比如一个用户列表里面每个用户都有多个书籍,可以使用数组表示深层参数:
```javascript
const route = {
path: '/users/:userId/books', // userId 是动态参数,books 是动态参数的数组
component: UserBooksList,
}
// 传递参数时
this.$router.push({ name: 'route', params: { userId: 1, books: ['book1', 'book2'] } });
```
在组件里,可以遍历 `this.$route.params.books` 来获取每个书籍的 id。
阅读全文