Vue2.0 实现页面缓存和不缓存的方式


Posted in Javascript onNovember 12, 2019

1、在app中设置需要缓存的div

<keep-alive>//缓存的页面
  <router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive"></router-view>//不缓存的页面

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>包含<router-view>实现页面缓存,加速页面加载,

同时,这种方式带来一些弊端,请看如下大神解释:

****************************************************************************

当引入keep-alive的时候,页面第一次进入,钩子的触发顺序created-> mounted-> activated,退出时触发deactivated。

当再次进入(前进或者后退)时,只触发activated。

****************************************************************************

这就带来一个问题,之前在项目中使用mounted在页面加载时获取数据,使用<keep-alive>后方法不再生效,

根据上面的解释,将mounted替换为activated即可。

以上这篇Vue2.0 实现页面缓存和不缓存的方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js以对象为索引的关联数组
Jul 04 Javascript
javascript作用域容易记错的两个地方分析
Jun 22 Javascript
jquery根据属性和index来查找属性值并操作
Jul 25 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
Jan 26 Javascript
星期几的不同脚本写法(推荐)
Jun 01 Javascript
基于AngularJS的拖拽文件上传的实例代码
Jul 15 Javascript
浅谈angular4生命周期钩子
Sep 05 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
Oct 11 Javascript
vue2里面ref的具体使用方法
Oct 27 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
Jul 05 Javascript
JS使用正则表达式判断输入框失去焦点事件
Oct 16 Javascript
Vue 3.0中jsx语法的使用
Nov 13 Javascript
Vue页面切换和a链接的本质区别详解
Nov 12 #Javascript
vue 中几种传值方法(3种)
Nov 12 #Javascript
Vue 中 a标签上href无法跳转的解决方式
Nov 12 #Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
Nov 12 #Javascript
vue.js 实现a标签href里添加参数
Nov 12 #Javascript
VUEX 数据持久化,刷新后重新获取的例子
Nov 12 #Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
Nov 12 #Javascript
You might like
oracle资料库函式库
2006/10/09 PHP
PHP的array_diff()函数在处理大数组时的效率问题
2011/11/27 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
基于PHP实现假装商品限时抢购繁忙的效果
2015/10/16 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
2016/07/18 PHP
PHP经典实用正则表达式小结
2017/05/04 PHP
Laravel实现表单提交
2017/05/07 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
Nigma vs Alliance BO5 第三场2.14
2021/03/10 DOTA
ie focus bug 解决方法
2009/09/03 Javascript
Javascript base64编码实现代码
2011/12/02 Javascript
jQuery实现订单提交页发送短信功能前端处理方法
2016/07/04 Javascript
Vue 使用 Mint UI 实现左滑删除效果CellSwipe
2018/04/27 Javascript
JS document内容及样式操作完整示例
2020/01/14 Javascript
js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
2020/03/02 Javascript
react结合bootstrap实现评论功能
2020/05/30 Javascript
vue watch监控对象的简单方法示例
2021/01/07 Vue.js
[01:14:19]NAVI vs Mineski 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
python基础教程之Hello World!
2014/08/29 Python
Python中生成器和yield语句的用法详解
2015/04/17 Python
在Python中marshal对象序列化的相关知识
2015/07/01 Python
Python实现矩阵加法和乘法的方法分析
2017/12/19 Python
Python随机生成身份证号码及校验功能
2018/12/04 Python
python爬虫之验证码篇3-滑动验证码识别技术
2019/04/11 Python
Python语法分析之字符串格式化
2019/06/13 Python
深入浅析python的第三方库pandas
2020/02/13 Python
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
CSS图片翻转动画技术详解(IE也实现了)
2014/04/03 HTML / CSS
安德玛比利时官网:Under Armour比利时
2019/08/28 全球购物
美国折扣香水网站:The Perfume Spot
2020/12/12 全球购物
乡下人家教学反思
2014/02/01 职场文书
新学期红领巾广播稿
2014/10/04 职场文书
年度考核登记表个人总结
2015/03/06 职场文书
关于调整工作时间的通知
2015/04/24 职场文书
党员干部廉政承诺书
2015/04/28 职场文书
幼儿园语言教学反思
2016/02/23 职场文书