您好,登錄后才能下訂單哦!
利用keep-alive 緩存需要緩存的頁面
在app.vue中改寫router-view
<keep-alive>
<router-view>
<!-- 這里是會被緩存的視圖組件,比如 page1,page2 -->
</router-view>
</keep-alive>
在router/index.js中添加路由元信息,設置需要緩存的頁面
routes: [{
path: '/',
name: 'index',
component: index,
meta: {
keepAlive: true, //此組件需要被緩存
}
},
{
path: '/page1',
name: 'page1',
component: page1,
meta: {
keepAlive: true, //此組件需要被緩存
}
},
{
path: '/page2',
name: 'page2',
component: page2,
meta: {
keepAlive: true, // 此組件需要被緩存
}
},
{
path: '/page3',
name: 'page3',
component: page3,
meta: {
keepAlive: true, // 此組件需要被緩存
}
}
]
鉤子函數(shù)的執(zhí)行順序
不使用keep-alive
beforeRouteEnter --> created --> mounted --> destroyed
使用keep-alive
beforeRouteEnter --> created --> mounted --> activated --> deactivated
再次進入緩存的頁面,只會觸發(fā)beforeRouteEnter -->activated --> deactivated 。created和mounted不會再執(zhí)行。我們可以利用不同的鉤子函數(shù),做不同的事。務必理解上述鉤子函數(shù)的執(zhí)行時機和執(zhí)行順序,本教程的核心就依賴于此鉤子函數(shù)
activated和deactivated是使用keep-alive后,vue中比較重要的兩個鉤子函數(shù),建議詳細了解下。
在組件中,主要是在activated鉤子函數(shù)中判斷是否使用緩存
activated() {
//使用緩存,直接跳過
if(不需要緩存,則執(zhí)行相應邏輯){
}
},
文末 分享一些技術學習視頻資料:https://pan.baidu.com/s/13dbR69NLIEyP1tQyRTl4xw
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。