vue关于使用window.open()新打开窗传参及接收参数的解决方法

在使用vue开发过程中中,有这样的需求,点击页面某个列表,需要新开一个窗口展示对应的数据,

一般我们会使用window.open(url,name,...)打开新的窗口

第一个是url路径,第二个是新开窗口的名称,第三个和的四个参数,我还没好好研究,也还不清楚具体的作用是啥

使用过程中的重中之重就是参数的接收很传递

我只是用了在url后面拼接参数的方法,至于post,body内传参的方法我也不知道,

大致就是这个样子的:

    window.open('/home/.../target?myString=' + this.myStr + '&data=' + this.data+ '&...' .....

这里的this.myStr和this.data可以看做是在需要传递的字符串和一个对象数组

myStr = '敲代码,敲代码'

data:[ {id: 12,name:'小花猫',age:'12'}, {id: 1,name:'大狼狗',age:'22'}]

对性数组是不可以像字符串那样直接传递的,那样是取不到数据的,解决的办法就是拼接的时候使用JSON.stringify先将对象或数组转为字符串再拼接上去,在新串口取到数据后再使用JSON.parse转回来就好了

所以正确的写法是:

    window.open('/home/.../target?myString=' + this.myStr + '&data=' +JSON.stringify(this.data)+ '&...' .....

现在数据已经传到新窗口了,该怎么取呢?网上有很多方法都是通过window.location.search来取,可是不知道为什么,我取不到啊,

所以我是通过this.$route.query取到

猜你喜欢

转载自www.cnblogs.com/zhang-jiao/p/11593497.html