一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - vue.js - vue打開新窗口并實現傳參的圖文實例

vue打開新窗口并實現傳參的圖文實例

2022-02-10 16:26lgx211 vue.js

這篇文章主要給大家介紹了關于vue打開新窗口并實現傳參的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

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

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

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

打開新窗口并傳參代碼

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

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

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

現在是頁面接收參數

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

貼個真相圖

vue打開新窗口并實現傳參的圖文實例

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

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

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

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

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

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

vue打開新窗口并實現傳參的圖文實例

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

//測試第一種傳參
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")
}

對應的接收參數,如下所示;

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

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

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

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

vue打開新窗口并實現傳參的圖文實例

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

總結

到此這篇關于vue打開新窗口并實現傳參的文章就介紹到這了,更多相關vue打開新窗口傳參內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/lgx211/p/14479751.html

延伸 · 閱讀

精彩推薦
  • vue.js用vite搭建vue3應用的實現方法

    用vite搭建vue3應用的實現方法

    這篇文章主要介紹了用vite搭建vue3應用的實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下...

    Asiter7912022-01-22
  • vue.js詳解vue 表單綁定與組件

    詳解vue 表單綁定與組件

    這篇文章主要介紹了vue 表單綁定與組件的相關資料,幫助大家更好的理解和學習使用vue框架,感興趣的朋友可以了解下...

    Latteitcjz6432022-02-12
  • vue.jsVue2.x-使用防抖以及節流的示例

    Vue2.x-使用防抖以及節流的示例

    這篇文章主要介紹了Vue2.x-使用防抖以及節流的示例,幫助大家更好的理解和學習使用vue框架,感興趣的朋友可以了解下...

    Kyara6372022-01-25
  • vue.jsVue中引入svg圖標的兩種方式

    Vue中引入svg圖標的兩種方式

    這篇文章主要給大家介紹了關于Vue中引入svg圖標的兩種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的...

    十里不故夢10222021-12-31
  • vue.jsVue項目中實現帶參跳轉功能

    Vue項目中實現帶參跳轉功能

    最近做了一個手機端系統,其中遇到了父頁面需要攜帶參數跳轉至子頁面的問題,現已解決,下面分享一下實現過程,感興趣的朋友一起看看吧...

    YiluRen丶4302022-03-03
  • vue.jsVue多選列表組件深入詳解

    Vue多選列表組件深入詳解

    這篇文章主要介紹了Vue多選列表組件深入詳解,這個是vue的基本組件,有需要的同學可以研究下...

    yukiwu6752022-01-25
  • vue.js梳理一下vue中的生命周期

    梳理一下vue中的生命周期

    看過很多人講vue的生命周期,但總是被繞的云里霧里,尤其是自學的同學,可能js的基礎也不是太牢固,聽起來更是吃力,那我就已個人之淺見,以大白話...

    CRMEB技術團隊7992021-12-22
  • vue.jsVue2.x 項目性能優化之代碼優化的實現

    Vue2.x 項目性能優化之代碼優化的實現

    這篇文章主要介紹了Vue2.x 項目性能優化之代碼優化的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋...

    優小U9632022-02-21
主站蜘蛛池模板: 惩罚狠h调教灌满 | 情欲综合网 | 国产真实乱子伦xxxxchina | 日韩在线二区全免费 | 爆操美女 | 四虎影在线永久免费观看 | 免费看打屁股视频的软件 | 国产精品露脸国语对白河北 | 女女宿舍互慰h文小说 | 2019中文字幕在线视频 | 私人影院免费 | 国产高清视频免费最新在线 | 亚洲国产精品综合欧美 | 日本xxxx18vr69 | 调教催眠改造np总攻 | 午夜精品区 | 国产高清dvd | 亚洲香蕉综合在人在线视看 | 欧美一级特黄刺激大片视频 | 国产一区二区三区久久小说 | 91久久国产视频 | 第一次处破女18分钟 | 私人黄色影院 | 亚洲 无码 制服 日韩 | 99ri精品 | caopren免费视频国产 | 日本最大的黄色网站 | 午夜精品在线 | 从后面撕开老师的丝袜动态图 | 日本hd18| 特黄特黄一级片 | 蜜桃破解版免费看nba | 91精品国产91久久久久久麻豆 | 好看华人华人经典play | 麻豆天美精东果冻传媒在线 | 天天干天天操天天爽 | aaaa黄色片 | 日日视频 | ipx358cn出差被男上司在线 | 国产精品亚洲片夜色在线 | 日本xx高清视频免费观看 |