如何在Vue 3中使用Vue Router将对象作为props传递?在Vue 2中,可以按照这里的接受答案和相应的JSFiddle来实现。在Vue 3中,与Vue 2不同,此语法会将推送的对象字符串化为"[object Object]"。我已经尝试了在以下fiddle中使用Vue 3。
Vue 3中是否可以通过Vue Router push()传递对象?
const Home = { template: '<div>Home</div>',
mounted: function() {
this.$router.push({
name: "about",
params: {
user: "User Name",
objectParam: {a: "a"}
}
})
}}
const About = { template: '<div>About</div>',
props: ['user', 'o', 'objectParam'],
mounted: function(){
console.log( "Passed props:" )
console.log( this.$props )
}}
const routes = [
{ path: '/', component: Home },
{ path: '/about', name:"about", component: About,
props: route => (
console.log("Params defined here are passed as objects."),
console.log("But route params object passed via push has already been stringified."),
console.log(route.params),
{o: {b: "b"},
...route.params
})},
]
const router = VueRouter.createRouter({
history: VueRouter.createWebHashHistory(),
routes,
})
const app = Vue.createApp({})
app.use(router)
app.mount('#app')
Vue 3中是否可以通过Vue Router push()传递对象?