Vue路由传参接收以及传参对象为对象时的解决方案

时间:2025-05-15 12:12:22

具体代码如下所示:

场景:

<div @click='toDetail'>查看详情</div>

路由传参不能直接传一个对象,需要使用()方法将其转换成一个字符串,然后在其他页面接受的时候再使用()方法转换成一个对象

const router = useRouter()

const toDetail = () => {
	// 我使用的是Vue3,router要从useRouter获取
	router.push({ name: 'viewAttendPerson', params: { list: JSON.stringify(formObj.form.myMeetingParticipatorList) } })
}

接收路由参数

1. Vue3接收
import { useRoute } from "vue-router";

setup() {
	const route = useRoute()
	const data = JSON.parse(route.params.list)
}
2. Vue2接收
let data = this.$route.params.list
data = JSON.parse(data)