Vue beforeRouteEnter 用法


遇到的問題:

業務流程:在商品詳情頁面,點擊【立即購買】按鈕,跳轉到【提交訂單】頁面。在【提交訂單】頁面返回到商品詳情頁時,

只能使用 this.$router.push方法返回到商品詳情頁。因為商品詳情頁需要商品ID。用這種方式返回到商品詳情頁時,再從商品

詳情頁點擊返回按鈕,還是會回到提交訂單頁面。這樣就形成一種死循環。應該返回到上上級頁面。

解決方式

商品詳情頁JS

export default {
props: {
seriesId: String
},
data() {
return {
pagetype:1//表示其他頁面
}
},
components: {},
beforeRouteEnter(to, from, next) {
console.log("****************Test1****Enter**************");
console.log('to', to);
console.log('from', from);
console.log('next', next);
next(vm => {
//因為當鈎子執行前,組件實例還沒被創建
// vm 就是當前組件的實例相當於上面的 this,所以在 next 方法里你就可以把 vm 當 this 來用了。
console.log(vm);//當前組件的實例
if(from.name=="order")//如果頁面從提交訂單返回來
{
vm.pagetype=3;//表示提交訂單頁面
}
});
},
methods: {
onClickLeft() {
//alert(this.pagetype);
if(this.pagetype ==3)
{
//alert("來自提交訂單頁面");
this.$router.go(-3);
}
else
{
//alert("來自其他頁面");
this.$router.go(-1);
}
},
}
 
        
 
        
 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM