當咱們在開發vue的項目過程當中,避免不了在路由切換到其餘的component再返回後該組件數據會從新加載,處理這種狀況咱們就須要用到keep-alive來緩存vue的組件信息,使其再也不從新加載。vue
1、在app.vue裏緩存
<keep-alive> <router-view></router-view> </keep-alive>
可是這種狀況會對全部的組件進行緩存,不能達到單個組件緩存的效果。app
那麼咱們給部分組件加上,實現方法以下:函數
在app.vuethis
<!--這裏是須要keepalive的--> <keep-alive> <router-view v-if="$route.meta.keepAlive"></router-view> <keep-alive> <!-- 這裏不會被keepAlive --> <router-view v-if="!$route.meta.keepAlive"></router-view>
2、 在路由的index.js頁面裏code
{ path: '', name: '', component: '', meta: {keepAlive: true} // 這個是須要keepalive的 }, { path: '', name: '', component: , meta: {keepAlive: false} // 這是不會被keepalive的 }
這就實現了部分組件的緩存功能component
若是緩存的組件想要清空數據或者執行初始化方法,在加載組件的時候調用activated鉤子函數,以下:router
activated: function () { this.data = ‘’ }