問題:
具體場景是:列表頁分頁(當前選中第5頁),點擊跳轉詳情頁,返回列表頁時,分頁狀態仍然停留在第5頁。
解決辦法:
1.在app.vue中添加keepAlive
1 <keep-alive> 2 <router-view v-if="$route.meta.keepAlive" :key="$route.fullPath"> 3 <!-- 這里是會被緩存的視圖組件 --> 4 </router-view> 5 </keep-alive> 6 7 <router-view v-if="!$route.meta.keepAlive"> 8 <!-- 這里是不被緩存的視圖組件 --> 9 </router-view>
2.在router/index.js中添加路由元信息keepAlive,設置需要緩存的頁面
3.在main.js添加beforeRouteEnter進行判斷
1 router.beforeEach((to, from, next) => { 2 //to(當前頁面) form(前一頁面) 3 //判斷當前頁是不是目標頁,再判斷前一頁面是否要緩存 4 if (to.name == 'interviewDetail' && from.name == 'interviewManagement') { 5 from.meta.keepAlive = true; 6 }else { 7 from.meta.keepAlive = false; 8 } 9 next(); 10 });