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

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

通常咱们会使用window.open(url,name,...)打开新的窗口数组

 

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

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

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

大体就是这个样子的:spa

    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'}]get

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

 

因此正确的写法是:

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

 

如今数据已经传到新窗口了,该怎么取呢?网上有不少方法都是经过window.location.search来取,但是不知道为何,我取不到啊,

因此我是经过this.$route.query取到

相关文章
相关标签/搜索