vue-router 如何优雅传参嵌套的对象?

在传递嵌套的对象时,拿到的是字符串 '[object Object]', 而不是原始的对象.

router.push({ name: 'somewhere', params: { oops: { a: { b: { c: 'gets removed'} } } })
console.log(route.params.oops); // '[object Object]'

除了使用 oops: (JSON.stringify(oops)) 还有更合适的方案传参吗?

阅读 342
1 个回答

你这个是跨组件通讯,而不是单纯的路由参数。需要使用 vuex 或者 pinia 来实现。当然也可以通过 localStorage 来简单实现。
当然你如果你非要做也可以,但你在路由上面来处理一点也不优雅,也不合适。

var a = { 
  b: {
    c : {
      d: 1
    }
  } 
}
const params = btoa(JSON.stringify(a))
console.log('params', params)
// "eyJiIjp7ImMiOnsiZCI6MX19fQ==" 
推荐问题
宣传栏