vue-router重定向不刷新問題的解決
前陣子太忙了,自己一個(gè)人一邊開發(fā)著新項(xiàng)目,一邊維護(hù)著舊項(xiàng)目,沒時(shí)間寫博客,終于讓我騰出時(shí)間了。廢話少說,開始正文。
問題描述:
之前項(xiàng)目是angular開發(fā)的,后來用vue重構(gòu)后。項(xiàng)目路徑和vue路徑不一致,但是app端分享出的鏈接,依舊是舊項(xiàng)目鏈接
。
解決方法:
通過閱讀vue-router的官方文檔,發(fā)現(xiàn)重定向可以解決這個(gè)問題。
如之前文件路徑是'/live/detail/id=7234','/skill/microList/',
新項(xiàng)目路徑是 '/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)},
新的問題:
本來以為重定向就萬事大吉了,結(jié)果發(fā)版后,有用戶反饋是空白頁面。我仔細(xì)看了路徑?jīng)]問題啊,順直一點(diǎn)點(diǎn)排查,發(fā)現(xiàn)重定向成功了,但是頁面沒刷新
解決方法:
通過仔細(xì)觀察,重定向的過程,發(fā)現(xiàn)會(huì)先執(zhí)行舊路由,再進(jìn)行重定向,那么可以統(tǒng)一配置舊路徑,讓其刷新。router中
使用通配符,讓之前沒有寫路徑規(guī)則的頁面,統(tǒng)一跳轉(zhuǎn)到一個(gè)新的頁面,讓再新頁面判斷是否是重定向過來的。NotFound頁面的代碼
beforeRouteEnter(to,from,next){ next(vm => { console.warn(to.redirectedFrom) if(to.redirectedFrom){//vue-router redirect不會(huì)刷新頁面,需要判斷并刷新 // vm.$router.go(0)//safari瀏覽器go(0)無效 window.location.reload() } }) },
重定向的頁面會(huì)有redirectedFrom這個(gè)屬性,然后讓其刷新即可。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用ef6創(chuàng)建oracle數(shù)據(jù)庫的實(shí)體模型遇到的問題及解決方案
這篇文章主要介紹了使用ef6創(chuàng)建oracle數(shù)據(jù)庫的實(shí)體模型遇到的問題及解決方案,需要的朋友可以參考下2017-11-11JavaScript數(shù)據(jù)結(jié)構(gòu)鏈表知識(shí)詳解
存儲(chǔ)有序的元素集合,但不同于數(shù)組,鏈表中的元素在內(nèi)存中不是連續(xù)放置的。每個(gè)元素由一個(gè)存儲(chǔ)元素本身的節(jié)點(diǎn)和一個(gè)指向下一個(gè)元素的引用(也稱指針或鏈接)組成。下面通過本文給大家詳細(xì)介紹下,需要的朋友參考下2016-11-11ElementPlus?Tag標(biāo)簽用法小結(jié)
這篇文章主要介紹了ElementPlus?Tag標(biāo)簽用法,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09詳解JavaScript對(duì)象轉(zhuǎn)原始值
這篇文章主要為大家介紹了vue組件通信的幾種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2021-12-12JavaScript中遞歸實(shí)現(xiàn)的方法及其區(qū)別
遞歸函數(shù)是在通過名字調(diào)用自身的情況下構(gòu)成的。下面通過本文給大家分享JavaScript中遞歸實(shí)現(xiàn)的方法及其區(qū)別,感興趣的朋友一起看看吧2017-09-09Javascript 模擬mvc實(shí)現(xiàn)點(diǎn)餐程序案例詳解
這篇文章主要介紹了Javascript 模擬mvc實(shí)現(xiàn)點(diǎn)餐程序案例詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12