vue中的緩存——keep-alive,activated,deactivated


1、通過keep-alive和router-view實現路由緩存,具體代碼如下:
在app.vue:

<router-view v-if="!$route.meta.keepAlive"/>
<keep-alive>
<router-view v-if="$route.meta.keepAlive"/>
</keep-alive>
在路由文件中配置相關參數,來判斷該路由是否需要緩存,當keepAlive存在並且值為true時,緩存該路由

{
path: 'dCustomerPage',
name: '客戶管理',
component: dCustomerPage,
meta:{
keepAlive: true,
}
},
2、關於activated鈎子函數
首次進入該路由的頁面時會觸發created,mounted,activated等鈎子函數,但使用this.router.go1返回該路由的時候,不會觸發created和mounted,只會觸發activated。如果調用this.router.go(−1)返回該路由的時候,不會觸發created和mounted,只會觸發activated。如果調用this.router.go(-1)返回該路由后希望手動刷新數據,可以在activated(){}中執行相關的請求,但首次進入或者f5刷新界面的時候會多次觸發相關數據請求,可以用定時器解決或者類似鎖的操作。

3、關於deactivated鈎子函數
在離開該緩存路由后,該路由的組件並沒有被銷毀,如果需要銷毀如定時器相關的操作可以在deactivated鈎子函數中處理,類似於beforeDestroy鈎子函數的調用


免責聲明!

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



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