實現vue 的keep-alive快取功能

前端攻城小牛啊發表於2018-11-27

當我們在開發vue的專案過程中,避免不了在路由切換到其他的component再返回後該元件資料會重新載入,處理這種情況我們就需要用到keep-alive來快取vue的元件資訊,使其不再重新載入。

實現vue 的keep-alive快取功能

一、在app.vue裡

<keep-alive>
  <router-view></router-view>
</keep-alive>
複製程式碼

但是這種情況會對所有的元件進行快取,不能達到單個元件快取的效果。 那麼我們給部分元件加上,實現方法如下: 在app.vue

<!--這裡是需要keepalive的-->
<keep-alive>
  <router-view v-if="$route.meta.keepAlive"></router-view>
<keep-alive> 
<!-- 這裡不會被keepAlive --> 
<router-view v-if="!$route.meta.keepAlive"></router-view>
複製程式碼

二、 在路由的index.js頁面裡

{
  path: '',
  name: '',
  component: '',
  meta: {keepAlive: true}   // 這個是需要keepalive的
},//歡迎加入全棧開發交流圈一起學習交流:864305860
{//幫助突破技術瓶頸,提升思維能力
  path: '',
  name: '',
  component: ,
  meta: {keepAlive: false}  // 這是不會被keepalive的
}
複製程式碼

這就實現了部分元件的快取功能 如果快取的元件想要清空資料或者執行初始化方法,在載入元件的時候呼叫activated鉤子函式,如下:

activated: function () {
  this.data = ‘'
}
複製程式碼

結語

感謝您的觀看,如有不足之處,歡迎批評指正。

本次給大家推薦一個免費的學習群,裡面概括移動應用網站開發,css,html,webpack,vue node angular以及面試資源等。 對web開發技術感興趣的同學,歡迎加入Q群:864305860,不管你是小白還是大牛我都歡迎,還有大牛整理的一套高效率學習路線和教程與您免費分享,同時每天更新視訊資料。 最後,祝大家早日學有所成,拿到滿意offer,快速升職加薪,走上人生巔峰。

相關文章