vue使用keep-alive实现数据缓存不刷新


Posted in Javascript onOctober 21, 2017

到现在,接触vue也小段时间了,项目进行到了一定程度,然而项目缺少了缓存机制,所以每次跳转页面都会重新created一下数据,虽说系统的数据请求速度很快,但是这样做对系统的性能会有很大的坏处的,所以到这里就要对系统优化下,添加缓存了。

其实到现在,对于vue还是没有玩通,每深挖一次,就会发现一次vue的精彩,开始不清楚要用什么实现缓存,找了好久,有好几种说法,就是用vuex、vuet或者keep-alive,然后对比了一下,在我认为,vuex和vuet是实现状态管理,重心是在数据处理上;想要实现整体的缓存,阻止created的刷新,就要用keep-alive。

所以这里我想要给大家介绍下如何用keep-alive实现缓存的页面?其实很简单,就是几句话而已。

1、keep-alive要配合router-view使用,这里要注意一点就是,keep-alive本身是vue2.0的功能,并不是vue-router的,所以再vue1.0版本是不支持的。keep-alive官方文档点这里,代码实现如下,router-view是在入口APP.vue里面

<template>
 <div id="app">

  <keep-alive>
   <router-view></router-view>
  </keep-alive>
  
  <!--这里是其他的代码-->
 </div>
</template>

2、这样就会实现组件的缓存,但是有个缺点就是所有组件都会被缓存,可是现实中就是我们有些页面还是要及时刷新的,比如列表数据,想要查看详情的时候都是共用一个组件,只是刷新页面,所以这个共用的组件是不能够缓存的,不然会造成点其他的条目都是之前缓存的数据。那要怎么自定义呢,那就要在router-view里面多加个v-if判断了,然后在router定义的文件里面在想要缓存的页面多加上“meta:{keepAlive:true}”,不想要缓存就是“meta:{keepAlive:false}”或者不写,只有为true的时候是会被keep-alive识别然后缓存的。

<template>
 <div id="app">
  <!--缓存想要缓存的页面,实现后退不刷新-->
  <!--加上v-if的判断,可以自定义想要缓存的组件,自定义在router里面-->
  <keep-alive>
   <router-view v-if="$route.meta.keepAlive"></router-view>
  </keep-alive>
  <router-view v-if="!$route.meta.keepAlive"></router-view>
  
  <!--这里是其他的代码-->
 </div>
</template>

3、在router文件加上meta判断

import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)
export default new Router({
  {//home会被缓存
    path:"/home",
    component:home,
    meta:{keepAlive: true}
  }
  {//hello不会被缓存
    path:"/hello",
    component:hello,
    meta:{keepAlive: false}
  }
})

想要看有没有缓存成功,可以在各个组件的created钩子里面打印输出标志,缓存成功就是首次进入页面,created会请求数据,后面就不会再次请求而是直接调用缓存的

添加了缓存可以大大减少对系统性能的损坏,毕竟做数据处理型的系统,数据过于庞大,每次都要请求一下页面是很不好的,有了缓存,该缓存的缓存,不想缓存也可以实时刷新

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
优秀js开源框架-jQuery使用手册(1)
Mar 10 Javascript
可以将word转成html的js代码
Apr 11 Javascript
Jquery下attr和removeAttr的使用方法
Dec 28 Javascript
jquery中:input和input的区别分析
Jul 13 Javascript
javascript动态创建表格及添加数据实例详解
May 13 Javascript
JavaScript字符串删除重复字符的方法
Dec 25 Javascript
详解jQuery中的deferred对象的使用(一)
May 27 Javascript
js 获取站点应用名的简单实例
Aug 18 Javascript
纯JS实现弹性导航条效果
Mar 06 Javascript
Angular自定义组件实现数据双向数据绑定的实例
Dec 11 Javascript
如何把vuejs打包出来的文件整合到springboot里
Jul 26 Javascript
vscode+gulp轻松开发小程序的完整步骤
Oct 18 Javascript
详解在WebStorm中添加Vue.js单文件组件的高亮及语法支持
Oct 21 #Javascript
Vue filter介绍及其使用详解
Oct 21 #Javascript
详解node nvm进行node多版本管理
Oct 21 #Javascript
JS实现瀑布流布局
Oct 21 #Javascript
js实现Tab选项卡切换效果
Jul 17 #Javascript
js实现鼠标移动到图片产生遮罩效果
Oct 21 #Javascript
js注册时输入合法性验证方法
Oct 21 #Javascript
You might like
php 不使用js实现页面跳转
2014/02/11 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
2014/06/12 PHP
PHP+百度AI OCR文字识别实现了图片的文字识别功能
2019/05/08 PHP
asp.net+js 实现无刷新上传解析csv文件的代码
2010/05/17 Javascript
JavaScript转换农历类实现及调用方法
2013/01/27 Javascript
js 判断上传文件大小及格式代码
2013/11/13 Javascript
jQuery实现ichat在线客服插件
2014/12/29 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
2016/07/09 Javascript
懒加载实现的分页&amp;&amp;网站footer自适应
2016/12/21 Javascript
ThinkPHP+jquery实现“加载更多”功能代码
2017/03/11 Javascript
vue拦截器Vue.http.interceptors.push使用详解
2017/04/22 Javascript
react-native-tab-navigator组件的基本使用示例代码
2017/09/07 Javascript
node 利用进程通信实现Cluster共享内存
2017/10/27 Javascript
用Electron写个带界面的nodejs爬虫的实现方法
2019/01/29 NodeJs
jQuery分组选择器简单用法示例
2019/04/04 jQuery
150行Node.js实现的dns代理工具
2019/08/02 Javascript
layui下拉框获取下拉值(select)的例子
2019/09/10 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
详细介绍Ruby中的正则表达式
2015/04/10 Python
Python基础教程之利用期物处理并发
2018/03/29 Python
Django管理员账号和密码忘记的完美解决方法
2018/12/06 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
Django之使用内置函数和celery发邮件的方法示例
2019/09/16 Python
Python @property原理解析和用法实例
2020/02/11 Python
django使用F方法更新一个对象多个对象字段的实现
2020/03/28 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
2021/02/01 Python
canvas实现二维码和图片合成的示例代码
2018/08/01 HTML / CSS
西班牙品牌鞋子、服装和配饰在线商店:Esdemarca
2021/02/17 全球购物
C#中类(class)与结构(struct)的异同
2013/11/03 面试题
大学生学业生涯规划
2014/01/05 职场文书
《小草和大树》教学反思
2014/02/16 职场文书
党员自我对照检查材料
2014/08/19 职场文书
2015年“我们的节日·重阳节”活动总结
2015/07/29 职场文书
红领巾广播站广播稿
2015/08/19 职场文书
教你怎么用Python处理excel实现自动化办公
2021/04/30 Python
分布式架构Redis中有哪些数据结构及底层实现原理
2022/03/13 Redis