Vue2.0 实现页面缓存和不缓存的方式
1、在app中设置需要缓存的div
//缓存的页面 //不缓存的页面
2、在路由router.js中设置.vue页面是否需要缓存
{ path:'/home', component:home, meta:{keepAlive:true},//当前的.vue文件需要缓存 }, { path:'/notice', component:notice,//当前页面不需要缓存 }
3、从缓存页面跳转到不缓存页面,或者从不缓存页面跳转到缓存页面的时候,会发现watch是不能监听路由的,是因为缓存和不缓存页面分别在不同的div里面,一个div里面是不可能监听到另一个div的路由的,所有需要把监听的路由都加上缓存(在路由添加meta:{keepAlive:true}),路由在缓存页面之间进行跳转的时候,就可以通过监听路由来进行判断数据是否需要更新。
vuekeep-alive缓存后,进入缓存页需要再次更新
beforeRouteEnter(to,from,next){ next(vm=>{ vm.getData() }) }, mounted:function(){ this.getData() }
keep-alive数据更新问题
在项目中使用
同时,这种方式带来一些弊端,请看如下大神解释:
****************************************************************************
当引入keep-alive的时候,页面第一次进入,钩子的触发顺序created->mounted->activated,退出时触发deactivated。
当再次进入(前进或者后退)时,只触发activated。
****************************************************************************
这就带来一个问题,之前在项目中使用mounted在页面加载时获取数据,使用
根据上面的解释,将mounted替换为activated即可。
以上这篇Vue2.0实现页面缓存和不缓存的方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。