最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue打開新窗口并實現(xiàn)傳參的圖文實例

 更新時間:2021年03月04日 14:48:28   作者:lgx211  
這篇文章主要給大家介紹了關(guān)于vue打開新窗口并實現(xiàn)傳參的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

我要實現(xiàn)的功能是打開一個新窗口用來展示新頁面,而且需要傳參數(shù),并且參數(shù)不能顯示在地址欄里面,而且當(dāng)我刷新頁面的時候,傳過來的參數(shù)不能丟失,要一直存在,除非我手動關(guān)閉這個新窗口,即瀏覽器的標簽頁。

通過面向百度編程,發(fā)現(xiàn)網(wǎng)上的根本達不到這個效果,而且還都是坑,明明實現(xiàn)不了,還若有其事的寫出來,于是我在標題特意加上有圖有真相,誠我不欺,實現(xiàn)不了功能,就不要出來糊弄人。

先把我做好的代碼寫出來,后面再介紹別人實現(xiàn)不了的坑,以及這方面相關(guān)要注意的。

打開新窗口并傳參代碼

//打開新窗口并傳參,參數(shù)不能顯示在地址欄里面,不關(guān)閉窗口一直刷新,參數(shù)一直有效
handleWindow() {
 //主要實現(xiàn)打開新窗口的功能
 var route = this.$router.resolve({
 name: 'Xterm',
 })
 //主要實現(xiàn)存儲參數(shù)的功能
 sessionStorage.setItem("ip", "1.1.1.1");
 
 window.open(route.href, '_blank')
}

我的路由配置,也貼出來好了

{
 path: '/xterm',
 hidden: true,
 component: () => import('@/views/monitor/xterm/index'),
 name: 'Xterm',
},

現(xiàn)在是頁面接收參數(shù)

//vue的初始化方法,頁面一初始化,就去拿參數(shù)
created() {
 alert(sessionStorage.getItem("ip"));
 this.ip = sessionStorage.getItem("ip")
},

貼個真相圖

這是通過vue的 打開新窗口,通過sessionStorage傳參拿參數(shù)。為什么只能這么做,才能實現(xiàn)這個功能,下面我講一下我的踩坑歷程。群眾里有壞人,拿個假代碼來網(wǎng)絡(luò)上騙人,哪個碼農(nóng)經(jīng)不起這樣的考驗?

首先這個功能需要打開新窗口,那么方式有如下3種;

第一種:通過<router-link>標簽,這種標簽的寫法我個人很不中意,對于簡單的業(yè)務(wù)場景還勉強可以,但是我要處理一堆業(yè)務(wù),很多個參數(shù)的,這種標簽的寫法很不利于業(yè)務(wù)拓展。直接排除,OUT!

第二種:通過router.replace方法,這種方法的打開窗口,是把當(dāng)前A頁面替換成要跳轉(zhuǎn)過去的B頁面,我打開新窗口是想看新東西,這倒好,直接讓我之前的頁面沒了,這不操蛋嘛?在我實驗過后,OUT!

第三種:通過router.resolve方法,這就是打開新窗口,不影響當(dāng)前A頁面,直接打開一個瀏覽器標簽頁,我可以通過來回切換標簽頁,來看兩個頁面的信息數(shù)據(jù)。這很nice,我中意,就是這個了。

順帶介紹一下,vue2.0以后,為了和日漸流行的HTML5保持一致,router.go和router.push就不支持新窗口打開的屬性,router.go被用來當(dāng)做前進后退了; router.push被用來當(dāng)做導(dǎo)向特殊頁面, 這個跳轉(zhuǎn),不會打開新窗口,有history功能,如果你一個窗口有多標簽頁的話,可以用這個來開多個,如圖所示;

好了,使用router.resolve,我們可以跳轉(zhuǎn)到新窗口里,那么現(xiàn)在就開始傳參了,這就到了坑爹的地方了。按照網(wǎng)上的搬運來看,主要是如下兩種傳參;

//測試第一種傳參
testA (aaa) {
 const route = this.$router.resolve({
   name: 'Xterm', 
   params: {
     ip: aaa
   }
 })
 window.open(route.href,'_blank')
}

//測試第二種傳參
testA (bbb) {
 const route = this.$router.resolve({
   path: '/xterm', 
   query: {
     ip: bbb
   }
 })
 window.open(route.href,'_blank')
}

對應(yīng)的接收參數(shù),如下所示;

created() {
 //測試第一種接參
 this.ip = this.$route.params.ip
 //測試第二種接參
 this.ip = this.$route.query.ip
},

測試的結(jié)果是,第一種永遠拿不到值,第二種地址欄里暴露了傳遞的各項參數(shù)值。即使第一種經(jīng)過種種特殊處理,最好的結(jié)果也只是第一次拿到值,再刷新一下頁面,值就丟失了,這怎么行?誰能保證用戶不會覺得有點卡,然后順手去點了刷新按鈕。這種在router.push里面?zhèn)鲄⑹且稽c問題都沒有,都能接收到,區(qū)別就是name+params組合,參數(shù)不會在地址欄里面,刷新后數(shù)據(jù)會消失;path+query組合傳參,參數(shù)會在地址欄里面,無論怎么刷新頁面,值會一直在。估計是用push試了以后,理所當(dāng)然的覺得resolve也一樣,我看好多博客里寫的不通過地址欄傳參,使用第一種傳參,然后壓根成功不了,還點擊量賊高,欲哭無淚啊。

沒辦法,只能自己動手了,找了找緩存啥的,發(fā)現(xiàn)localStorage 和 sessionStorage 屬性,sessionStorage 用于臨時保存數(shù)據(jù),在關(guān)閉窗口或標簽頁之后將會刪除這些數(shù)據(jù);localStorage 用于長久保存整個網(wǎng)站的數(shù)據(jù),保存的數(shù)據(jù)沒有過期時間,直到手動去刪除。顯而易見,sessionStorage 就可以了。

支持這倆屬性的瀏覽器版本如下所示;

至此,其實問題就得到解決了,其實,也不復(fù)雜,就是網(wǎng)上答案良莠不齊,記錄一下,以供他人使用。

總結(jié)

到此這篇關(guān)于vue打開新窗口并實現(xiàn)傳參的文章就介紹到這了,更多相關(guān)vue打開新窗口傳參內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue報錯Not?allowed?to?load?local?resource的解決辦法

    vue報錯Not?allowed?to?load?local?resource的解決辦法

    這篇文章主要給大家介紹了關(guān)于vue報錯Not?allowed?to?load?local?resource的解決辦法,這個錯誤是因為Vue不能加載本地資源的原因,需要的朋友可以參考下
    2023-07-07
  • vue中的mvvm模式講解

    vue中的mvvm模式講解

    今天小編就為大家分享一篇關(guān)于vue中的mvvm模式講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • vue.js將時間戳轉(zhuǎn)化為日期格式的實現(xiàn)代碼

    vue.js將時間戳轉(zhuǎn)化為日期格式的實現(xiàn)代碼

    這篇文章主要介紹了vue.js將時間戳轉(zhuǎn)化為日期格式的實現(xiàn)代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06
  • vue-cli中實現(xiàn)響應(yīng)式布局的方法

    vue-cli中實現(xiàn)響應(yīng)式布局的方法

    這篇文章主要介紹了vue-cli中實現(xiàn)響應(yīng)式布局的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 詳解如何搭建mpvue框架搭配vant組件庫的小程序項目

    詳解如何搭建mpvue框架搭配vant組件庫的小程序項目

    這篇文章主要介紹了詳解如何搭建mpvue框架搭配vant組件庫的小程序項目,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • 解決vue addRoutes不生效問題

    解決vue addRoutes不生效問題

    這篇文章主要介紹了解決vue addRoutes不生效問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • vue+element使用動態(tài)加載路由方式實現(xiàn)三級菜單頁面顯示的操作

    vue+element使用動態(tài)加載路由方式實現(xiàn)三級菜單頁面顯示的操作

    這篇文章主要介紹了vue+element使用動態(tài)加載路由方式實現(xiàn)三級菜單頁面顯示的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Vue如何獲取下拉框中選中的value值和label值

    Vue如何獲取下拉框中選中的value值和label值

    這篇文章主要介紹了Vue如何獲取下拉框中選中的value值和label值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue-router的使用方法及含參數(shù)的配置方法

    vue-router的使用方法及含參數(shù)的配置方法

    這篇文章主要介紹了vue-router的使用方法及含參數(shù)的配置方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-11-11
  • vue-devtools的安裝與使用教程

    vue-devtools的安裝與使用教程

    vue-devtools是一款基于chrome游覽器的插件,用于調(diào)試vue應(yīng)用,這可以極大地提高我們的調(diào)試效率,這篇文章主要介紹了vue-devtools的安裝與使用教程,需要的朋友可以參考下
    2023-03-03

最新評論

逊克县| 浙江省| 隆昌县| 稷山县| 长武县| 韶关市| 金平| 白银市| 桐庐县| 剑川县| 巨野县| 阜城县| 东海县| 慈利县| 洛川县| 玛曲县| 科技| 湘乡市| 应城市| 怀集县| 赤城县| 定远县| 长春市| 翼城县| 元阳县| 米脂县| 景德镇市| 濮阳市| 乌拉特前旗| 武城县| 凤台县| 顺义区| 周口市| 高雄县| 万年县| 山西省| 五河县| 罗定市| 凤翔县| 宁晋县| 信阳市|