vue-router 設置路由在新窗口打開頁面

一. <router-link>標籤實現新窗口打開:

官方文檔中說 v-link 指令被 <router-link> 組件指令替代,且 <router-link> 不支持 target="_blank" 屬性,如果需要打開一個新窗口必須要用<a>標籤,但事實上vue2版本的 <router-link> 是支持  target="_blank" 屬性的(tag="a"),示例如下:

<router-link target="_blank" tag="a" :to="{path:'/detail',query:{id:'1'}}">新頁面打開detail頁</router-link>

注:只有tag="a"模式下  target="_blank" 屬性纔會生效。

二. 編程式導航:

有些時候需要在單擊事件或者在函數中實現頁面跳轉,那麼可以藉助router的示例方法,通過編寫代碼實現。我們常用的是 $router.push 和 $router.go ,但是vue2.0以後,這種方式就不支持新窗口打開的屬性了。這兩種平常用的都比較多,這裏就不再贅述。百度了下,找到了使用 $router.resolve 這種方法能夠實現新窗口打開,示例代碼如下:

routeLink(){
     let routeUrl = this.$router.resolve({
          path: "/detail",
          query: {id:1}
     });
     window.open(routeUrl.href, '_blank');
}

三、直接使用a標籤:

<a href="http://localhost:8080/detail?id=1" target="_blank">新頁面打開</a>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章