溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue-router中重定向不刷新問題如何解決

發(fā)布時間:2021-07-21 14:46:20 來源:億速云 閱讀:619 作者:Leah 欄目:web開發(fā)

這期內容當中小編將會給大家?guī)碛嘘Pvue-router中重定向不刷新問題如何解決,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

前陣子太忙了,自己一個人一邊開發(fā)著新項目,一邊維護著舊項目,沒時間寫博客,終于讓我騰出時間了。廢話少說,開始正文。

問題描述:

之前項目是angular開發(fā)的,后來用vue重構后。項目路徑和vue路徑不一致,但是app端分享出的鏈接,依舊是舊項目鏈接。

解決方法:

通過閱讀vue-router的官方文檔,發(fā)現(xiàn)重定向可以解決這個問題。

如之前文件路徑是'/live/detail/id=7234','/skill/microList/',新項目路徑是 '/s/live/detail?id=7234','/s/live/list'

{path: '/live/list(/)?:foo', redirect: '/s/live/list'},
{path: '/s/live/list', meta: {keepAlive:true,title: '課程'}, component: resolve => require(['../pages/s/live/list/Index.vue'], resolve)},
{path: '/live/detail(/)?:id', redirect: '/s/live/detail?:id'},
{path: '/s/live/detail', meta: {title: '課程詳情'}, component: resolve => require(['../pages/s/live/detail/Index.vue'], resolve)},

新的問題:  

本來以為重定向就萬事大吉了,結果發(fā)版后,有用戶反饋是空白頁面。我仔細看了路徑?jīng)]問題啊,順直一點點排查,發(fā)現(xiàn)重定向成功了,但是頁面沒刷新

解決方法:

通過仔細觀察,重定向的過程,發(fā)現(xiàn)會先執(zhí)行舊路由,再進行重定向,那么可以統(tǒng)一配置舊路徑,讓其刷新。router中

復制代碼 代碼如下:

{path: '*',meta:{title: '學部'}, component: resolve => require(['../pages/NotFound/Index.vue'], resolve)},

使用通配符,讓之前沒有寫路徑規(guī)則的頁面,統(tǒng)一跳轉到一個新的頁面,讓再新頁面判斷是否是重定向過來的。NotFound頁面的代碼

beforeRouteEnter(to,from,next){
 next(vm => {
  console.warn(to.redirectedFrom)
  if(to.redirectedFrom){//vue-router redirect不會刷新頁面,需要判斷并刷新
   // vm.$router.go(0)//safari瀏覽器go(0)無效
   window.location.reload()
  }
 })
},

重定向的頁面會有redirectedFrom這個屬性,然后讓其刷新即可。

上述就是小編為大家分享的vue-router中重定向不刷新問題如何解決了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI