vue路由跳转能传数组吗
时间: 2023-11-19 14:04:34 浏览: 113
可以传递数组。你可以在 `router-link` 组件中使用 `to` 属性传递一个对象,对象中包含一个 `params` 属性,该属性的值可以是一个数组。例如:
```
<router-link :to="{ name: 'myRoute', params: { myArray: [1, 2, 3] } }">My Link</router-link>
```
在接收参数的页面中,你可以通过 `$route.params` 来获取传递的参数,例如:
```
export default {
mounted() {
console.log(this.$route.params.myArray); // [1, 2, 3]
}
}
```
相关问题
vue3路由传参如何传递数组
可以使用路由的query参数来传递数组。在路由跳转时,将数组作为参数传递给query,然后在接收方的组件中通过$route.query来获取传递的数组参数。以下是一个示例代码:
1.在路由跳转时传递数组参数:
```javascript
this.$router.push({
path: '/example',
query: {
arr: [1, 2, 3]
}
})
```
2.在接收方的组件中获取传递的数组参数:
```javascript
export default {
mounted() {
const arr = this.$route.query.arr
console.log(arr) // 输出 [1, 2, 3]
}
}
```
vue3路由传参如何传递数组对象
在Vue3中,路由传参需要将数组对象转换成字符串,然后在接收参数的页面再将其转换成对象。具体步骤如下:
1. 在路由跳转时,使用JSON.stringify()方法将数组对象转换成字符串,并将其作为参数传递。
```javascript
import { useRouter } from 'vue-router'
const router = useRouter()
const toDetail = () => {
const list = [{ name: 'Tom', age: 18 }, { name: 'Jerry', age: 20 }]
router.push({
name: 'detail',
params: {
list: JSON.stringify(list)
}
})
}
```
2. 在接收参数的页面,使用JSON.parse()方法将字符串转换成数组对象。
```javascript
import { useRoute } from 'vue-router'
export default {
setup() {
const route = useRoute()
const list = JSON.parse(route.params.list)
console.log(list) // 输出:[{ name: 'Tom', age: 18 }, { name: 'Jerry', age: 20 }]
}
}
```
阅读全文