vue動態(tài)路由:路由參數(shù)改變,視圖不更新問題的解決
問題描述:
使用vue動態(tài)路由(“/route/:id” 形式) 傳參的時候,修改頁面參數(shù),但是視圖仍舊是之前的內(nèi)容,沒有進(jìn)行刷新,示例如下:
原因分析:
具體原因在vue官方文檔:響應(yīng)路由參數(shù)的變化一節(jié)中有講過:
當(dāng)使用路由參數(shù)時,例如從 /user/foo 導(dǎo)航到 /user/bar,原來的組件實(shí)例會被復(fù)用。因?yàn)閮蓚€路由都渲染同個組件,比起銷毀再創(chuàng)建,復(fù)用則顯得更加高效。不過,這也意味著組件的生命周期鉤子不會再被調(diào)用。
復(fù)用組件時,想對路由參數(shù)的變化作出響應(yīng)的話,你可以簡單地 watch (監(jiān)測變化) $route 對象
(摘自vue文檔)
解決辦法:
方法一: watch (監(jiān)測變化) $route 對象
watch: { '$route' (to, from) { // 監(jiān)聽路由的變化,做你想做的一些事情... // this.init() } },
方法二:使用 vue-router 2.2 中引入的 beforeRouteUpdate 導(dǎo)航守衛(wèi):
export default { data () { return { errCode: '', info: {} } }, beforeRouteUpdate (to, from, next) { // 做一些想要做的處理... // this.errCode = to.params.code // this.info = formatErrorMsg(this.errCode) next() // 一定要有next }, // ... }
方法二中需要注意的是,一定要有next()
以上這篇vue動態(tài)路由:路由參數(shù)改變,視圖不更新問題的解決就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue tagsview實(shí)現(xiàn)多頁簽導(dǎo)航功能流程詳解
基本上后臺管理系統(tǒng)都需要有多頁簽的功能,但是因?yàn)橐恍┠_手架項(xiàng)目基本都把這個功能給集成好了,導(dǎo)致在學(xué)習(xí)或者修改的時候不知道該如何下手。今天這篇文章就來聊一聊,vue-element-admin項(xiàng)目是如何實(shí)現(xiàn)多頁簽功能的2022-09-09Vue源碼學(xué)習(xí)之關(guān)于對Array的數(shù)據(jù)偵聽實(shí)現(xiàn)
這篇文章主要介紹了Vue源碼學(xué)習(xí)之關(guān)于對Array的數(shù)據(jù)偵聽實(shí)現(xiàn),Vue使用了一個方式來實(shí)現(xiàn)Array類型的監(jiān)測就是攔截器,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-04-04Vue+ElementUi實(shí)現(xiàn)點(diǎn)擊表格中鏈接進(jìn)行頁面跳轉(zhuǎn)與路由詳解
在vue中進(jìn)行前端網(wǎng)頁開發(fā)時,通常列表數(shù)據(jù)用el-table展示,下面這篇文章主要給大家介紹了關(guān)于Vue+ElementUi實(shí)現(xiàn)點(diǎn)擊表格中鏈接進(jìn)行頁面跳轉(zhuǎn)與路由的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02vue+render+jsx實(shí)現(xiàn)可編輯動態(tài)多級表頭table的實(shí)例代碼
這篇文章主要介紹了vue+render+jsx實(shí)現(xiàn)可編輯動態(tài)多級表頭table的實(shí)例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的工作或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04vue實(shí)現(xiàn)GitHub的第三方授權(quán)方法示例
本文主要介紹了vue實(shí)現(xiàn)GitHub的第三方授權(quán),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11vue3 + vite + ts 中使用less文件全局變量的操作方法
這篇文章主要介紹了vue3 + vite + ts 中使用less文件全局變量的操作方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-03-03解決vue watch數(shù)據(jù)的方法被調(diào)用了兩次的問題
這篇文章主要介紹了解決vue watch數(shù)據(jù)的方法被調(diào)用了兩次的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11