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取到


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM