重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、在app中设置需要缓存的div
创新互联-专业网站定制、快速模板网站建设、高性价比凤城网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式凤城网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖凤城地区。费用合理售后完善,10余年实体公司更值得信赖。
//缓存的页面 //不缓存的页面
2、在路由router.js中设置.vue页面是否需要缓存
{ path: '/home', component: home, meta: { keepAlive: true },//当前的.vue文件需要缓存 }, { path: '/notice', component: notice,//当前页面不需要缓存 }
3、从缓存页面跳转到不缓存页面,或者从不缓存页面跳转到缓存页面的时候,会发现watch是不能监听路由的,是因为缓存和不缓存页面分别在不同的div里面,一个div里面是不可能监听到另一个div的路由的,所有需要把监听的路由都加上缓存(在路由添加 meta: { keepAlive: true }),路由在缓存页面之间进行跳转的时候,就可以通过监听路由来进行判断数据是否需要更新。
vue keep-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 实现页面缓存和不缓存的方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持创新互联。