路由间跳转配置:
  • query 方式

参数会在url中显示

this.$router.push({ 
    // query方式
    path: "/a",
    query: {
        projectDetails: val
    },
     
  • params 方式

传参数据不会在导航栏中显示,需要配合路由的name属性使用

// params 方式
     name: 'a',
     params: {
            projectDetails: val
     }
新开页面

需要使用resolve配置

const {href} = this.$router.resolve({
    path: '/a',
    query: {
      code: '123',
    }
  })
  window.open(href, '_blank')

这里需要注意一下,使用params进行传参,在新页面内使用this.$route.params对象为{},参数无法传过来,query是可以正常传参。
我想这个应该跟我们正常打开一个链接是一样的,因为router-link的tag='a',应该是个超链接。
这个只是我的个人想法,欢迎指正。

如果遇到这种情况,不想参数在url上显示且必须要传的话,可以借用浏览器的缓存来实现。
在父页面写入缓存,在子页面从缓存中读取,读取之后再删除。

当然如果还有更好的解决方案,欢迎留言。

最后

我是觉得,如果遇到困难,暂时无法解决,可以选择曲线救国,疑难杂症后续有时间在深入研究。

欢迎关注我的微信公众号:匿名程序媛
一起挖坑、填坑
偶尔闲聊人生和理想
image


Rhinoceros
183 声望12 粉丝

以终为始