vue里面打開新的標簽頁

眾所周知,vue是單頁面應用,那么如果我們碰到的需求是需要打開一個新的窗口呢
很明顯,this.$router.push()和router-link是不行的,他們不會打開一個新的窗口

  1. 上代碼
    toNewPage(id) {
      let deviceId = id //必要的參數(shù)
      let routeData = this.$router.resolve({
        name: 'Equipment',//需要打開的路由名稱
        query: {
          deviceId: JSON.stringify(deviceId)//需要攜帶的參數(shù)
        }
      })
      window.open(routeData.href, '_blank');
    },

可能遇到的問題

  1. 上線訪問不到
    打開新的窗口可以看到href會默認加一層/static的路徑,這樣導致打包后線上環(huán)境找不到所訪問的地址(http404)。解決方法:我通過window.location來取路徑,這個路徑是不變的。因為我需要拼接參數(shù),所以我先截取了一下地址,實例如下:
  let sfAddress= _.split(window.location.href, '?', 2);
  let presAdress=sfAddress[0]+`?index=${index}&status=${hisPres.audit_status}`;
  window.open(presAdress, '_blank')

2.不要使用params傳參

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容