場景: vue-router 路由鉤子 beforeRouteEnter 可以用來在初始進入頁面前,http 異步獲取數(shù)據(jù) mockData ,預先判斷是進入 A 頁、還是 B 頁,還是留在本頁;而如果留在本頁的話,還需要在 mounted 根據(jù) mockData 來判斷顯示哪種狀態(tài)(可以在本頁面實例創(chuàng)建后,重新發(fā)起 http 請求獲取 mockData ,但是沒有必要,造成代碼冗余);
執(zhí)行順序:
async beforeRouteEnter(to, from, next) { let res = await gameData() console.log('beforeRouteEnter start'); next(vm => { console.log("vm start") vm.is_exchange = res.is_exchange vm.is_finish = res.is_finish }) }, beforeCreate() { console.log("beforeCreate start") }, mounted(){ console.log('mounted start'); if(this.is_finish){ this.modalMsg="活動已結(jié)束" return; } if(this.is_exchange){ this.modalMsg="您已兌換獎品" return; } }