利用keep-alive 缓存须要缓存的页面vue
在app.vue中改写router-view缓存
<keep-alive> <router-view> <!-- 这里是会被缓存的视图组件,好比 page1,page2 --> </router-view> </keep-alive>
在router/index.js中添加路由元信息,设置须要缓存的页面app
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, // 此组件须要被缓存 } } ]
钩子函数的执行顺序ide
不使用keep-alive
beforeRouteEnter --> created --> mounted --> destroyed函数
使用keep-alive
beforeRouteEnter --> created --> mounted --> activated --> deactivated
再次进入缓存的页面,只会触发beforeRouteEnter -->activated --> deactivated 。created和mounted不会再执行。咱们能够利用不一样的钩子函数,作不一样的事。务必理解上述钩子函数的执行时机和执行顺序,本教程的核心就依赖于此钩子函数
activated和deactivated是使用keep-alive后,vue中比较重要的两个钩子函数,建议详细了解下。学习
在组件中,主要是在activated钩子函数中判断是否使用缓存3d
activated() {
//使用缓存,直接跳过
if(不须要缓存,则执行相应逻辑){code
}component
},router
文末 分享一些技术学习视频资料:https://pan.baidu.com/s/13dbR69NLIEyP1tQyRTl4xw