Vue路由this.route.push跳轉頁面不刷新的解決方案
Vue路由this.route.push跳轉頁面不刷新
一、背景
介紹:在vue項目開發中,使用路由進行頁面跳轉時,路由所跳轉的頁面不進行刷新。
也就是vue生命周期函數沒有執行(created、mounted鉤子函數)。
案例:
A頁面:
B頁面:
問題:
當在A頁面第一點擊按鈕到B頁面時,一切正常,當返回到A頁面再次點擊按鈕時,B頁面沒有執行mounted鉤子函數,結果導致mounted函數中查詢方法不執行。
二、解決方法:
1、使用activated:{}周期函數代替mounted:{}函數即可。
2、監聽路由
// 不推薦、用戶體驗不好 watch: { '$route' (to, from) { // 路由發生變化頁面刷新 this.$router.go(0); } },
// 該方法會多一次請求 watch: { '$route' (to, from) { // 在mounted函數執行的方法,放到該處 this.qBankId = globalVariable.questionBankId; this.qBankName = globalVariable.questionBankTitle; this.searchCharpter(); } },
Vue this.$router.push路由跳轉,刷新參數消失
this.$router.push({name:"",params:{id:""}})
name和params搭配刷新參數會消失
this.$router.push({path:"",query:{id:""}})
path和query搭配,刷新頁面參數不會消失,query中參數成瞭url中的一部分
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。