当前位置: 首页 > 知识库问答 >
问题:

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

阴阳
2024-01-29

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

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

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

共有1个答案

闻人鸿文
2024-01-29

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

var a = {   b: {    c : {      d: 1    }  } }const params = btoa(JSON.stringify(a))console.log('params', params)// "eyJiIjp7ImMiOnsiZCI6MX19fQ==" 
 类似资料:
  • vue-router v4.1.4 更新日志 官方似乎不再支持以下的写法了: 这么写会提示: Discarded invalid param(s)... 官方推荐的替代方案: 将数据放入pinia等存储中 path query HistoryState 将其作为新属性传递给to.meta 导航守卫 方案1感觉让代码变得过于复杂了。 方案2对于需要传递复杂的对象。而不是简单的字符串或数字的话似乎无法

  • 假设有个对象非常多层,要给某一层进行赋值,那么需要一层层判断是否为空,有没有优雅的写法? 示例 此时要给a对象的d属性赋值,就需要一层层判断非空才行...

  • 本文向大家介绍Vue系列:通过vue-router如何传递参数示例,包括了Vue系列:通过vue-router如何传递参数示例的使用技巧和注意事项,需要的朋友参考一下 使用vue-router 来实现webapp的页面跳转,有时候需要传递参数,做法如下: 参考文献:http://router.vuejs.org/en/named.html 主要有以下几个步骤: (1) 设置好路由配置 这里有2个关

  • 本文向大家介绍vue-router实现嵌套路由的讲解,包括了vue-router实现嵌套路由的讲解的使用技巧和注意事项,需要的朋友参考一下 一、嵌套路由(配置好父路由component后,在父路由下面添加children属性来配置这个父路由的子路由) 需要注意的是:父组件中的<router-view></router-view>是子组件的占位符是必不可少的 嵌套路由的现象:点击了路由跳转之后父路由

  • 本文向大家介绍vue-router:嵌套路由的使用方法,包括了vue-router:嵌套路由的使用方法的使用技巧和注意事项,需要的朋友参考一下 模板抽离 我们已经学习过了Vue模板的另外定义形式,使用<template></template>。 然后js里定义路由组件的时候: 路由嵌套 实际应用界面,通常由多层嵌套的组件组合而成。 比如,我们 “首页”组件中,还嵌套着 “登录”和 “注册”组件,那

  • 问题内容: 我试图遍历嵌套对象以检索由字符串标识的特定对象。在下面的示例对象中,标识符字符串是“ label”属性。我无法解决如何遍历树以返回适当对象的问题。任何帮助或建议,将不胜感激。 问题答案: 您可以创建像这样的递归函数来对对象进行深度优先遍历。 可以这样称呼