您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“vue-router3.0版本中 router.push 不能刷新頁面怎么辦”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“vue-router3.0版本中 router.push 不能刷新頁面怎么辦”這篇文章吧。
在 github 的 vue-router 中找到同樣的一個(gè)問題:3.0.1版本通過router實(shí)例無法跳轉(zhuǎn)
昨天發(fā)現(xiàn)有些路由不能正常跳轉(zhuǎn),找了一下發(fā)現(xiàn)都是那些實(shí)例化后使用 router.push 而不是直接使用 this.$router.push 的地方。
出現(xiàn)的情況是 router.push 后,url變化了,但是頁面沒有刷新,手動刷新一下才出現(xiàn)應(yīng)有的畫面。
我看了一下 package.json,我的 vue 和 axios 是沒有寫版本號,但 vue-router 明明寫了版本號,怎么可能以前行的,現(xiàn)在就不行了呢?
然后,我使用 npm view vue-router 查看后才發(fā)現(xiàn)使用的已經(jīng)不是 package.json 中的版本了,于是斷定也許是我前幾天 npm update 了!
( 以后不要隨便 update 了! )
具體為什么新版本不行了,我也不太清楚。
最簡單的解決辦法當(dāng)然是直接把 router.push 改成 this.$router.push
但是,如果這樣可以的話,我當(dāng)初為什么要在組件內(nèi)再實(shí)例化一個(gè) Router 呢?
顯然是因?yàn)橛行┑胤降?this 并不是 vue,那么,再實(shí)例化一個(gè) vue,然后使用 vue.$router 行嗎?
答案當(dāng)然是不行的,因?yàn)檫@個(gè) vue 與 其它地方的 vue 應(yīng)該又不是同一個(gè)對象了。
那么,終極的解決方案就是:
把全局的 vue 中的 router 加到 window 中,也就在 main.js 中使用:
window.router=router
然后其它任何地方就可以直接愉快地使用 router.push 等 router 的方法了。
以上是“vue-router3.0版本中 router.push 不能刷新頁面怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。