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。

推薦閱讀: