很多时候,为了让提高用户的体验感,在页面上添加缓存,是十分有必要的,
本文转载自:https://www.cnblogs.com/smart-girl/p/10496769.html
通过组件<keep-alive></keep-alive>来进行页面数据的缓存
<keep-alive>
<router-view></router-view>
</keep-alive>
//可以通过路由中的参数来判断是否给页面添加缓存
<keep-alive>
<router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive"></router-view>
{
path: '/list',
name: 'List',
component: resolve => require(['@/pages/list'], resolve),
meta: {
isUseCache: false, // 这个字段的意思稍后再说
keepAlive: true // 通过此字段判断是否需要缓存当前组件
}
},
//isUseCache
// list组价的activated钩子
activated() {
// isUseCache为false时才重新刷新获取数据
// 因为对list使用keep-alive来缓存组件,所以默认是会使用缓存数据的
if(!this.$route.meta.isUseCache){
this.list = []; // 清空原有数据
this.onLoad(); // 这是我们获取数据的函数
}
},
// 详情页面的beforeRouteLeave钩子函数
beforeRouteLeave (to, from, next) {
if (to.name == 'List') {
to.meta.isUseCache = true;
}
next();
},