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 相关文章推荐
使用UglifyJS合并/压缩JavaScript的方法
Mar 07 Javascript
js/html光标定位的实现代码
Sep 23 Javascript
jquery ajax 简单范例(界面+后台)
Nov 19 Javascript
用js一次改变多个input的readonly属性值的方法
Jun 11 Javascript
node.js解决获取图片真实文件类型的问题
Dec 20 Javascript
js随机生成26个大小写字母
Feb 12 Javascript
jQuery简单实现MD5加密的方法
Mar 03 Javascript
js+html5实现侧滑页面效果
Jul 15 Javascript
vue集成chart.js的实现方法
Aug 20 Javascript
解决vue组件销毁之后计时器继续执行的问题
Jul 21 Javascript
如何利用javascript接收json信息并进行处理
Aug 06 Javascript
vue设置默认首页的操作
Aug 12 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
使用JSON实现数据的跨域传输的php代码
2011/12/20 PHP
php返回相对时间(如:20分钟前,3天前)的方法
2015/04/14 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
2016/07/25 PHP
javascript 跳转代码集合
2009/12/03 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
jQuery获得内容和属性示例代码
2014/01/16 Javascript
js加密解密字符串可自定义密码因子
2014/05/13 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
JavaScript事件委托技术实例分析
2015/02/06 Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
2016/12/26 Javascript
基于jQuery实现的打字机效果
2017/01/16 Javascript
微信小程序的分类页面制作
2017/06/27 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
ES6中Set和Map用法实例详解
2020/03/02 Javascript
python 中文字符串的处理实现代码
2009/10/25 Python
按日期打印Python的Tornado框架中的日志的方法
2015/05/02 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
推荐10款最受Python开发者欢迎的Python IDE
2018/09/16 Python
Python使用type动态创建类操作示例
2020/02/29 Python
python 爬取小说并下载的示例
2020/12/07 Python
Python try except else使用详解
2021/01/12 Python
Rodd & Gunn澳大利亚官网:新西兰男装品牌
2018/09/25 全球购物
explicit和implicit的含义
2012/11/15 面试题
进修护士自我鉴定
2013/10/14 职场文书
开工庆典邀请函范文
2014/01/16 职场文书
项目建议书范文
2014/05/12 职场文书
建筑安全生产目标责任书
2014/07/23 职场文书
我的中国梦演讲稿400字
2014/08/19 职场文书
高中美术教师事迹材料
2014/08/22 职场文书
离婚代理词范文
2015/05/23 职场文书
学术会议领导致辞
2015/07/29 职场文书
部门主管竞聘书
2015/09/15 职场文书
《和时间赛跑》读后感3篇
2019/12/16 职场文书
解决golang结构体tag编译错误的问题
2021/05/02 Golang