vue路由缓存的几种实现方式小结


Posted in Javascript onFebruary 02, 2020

本文实例讲述了vue路由缓存的几种实现方式。分享给大家供大家参考,具体如下:

在我们的日常开发中,有时候会遇到页面的缓存,特别是电商的项目,在商品列表的一些状态都是要缓存下来的。

下面就简单介绍几种 vue 路由缓存的几种方式。

1、全部缓存

<keep-alive>
  <router-view></router-view>
</keep-alive>

直接用 keep-alive 标签包裹 router-view 标签就能缓存全部的页面了

2、缓存单个指定路由

<keep-alive include="该路由的name名称">
  <router-view></router-view>
</keep-alive>

同样直接用 keep-alive 标签包裹 router-view 标签,然后使用 include 指定需要缓存的页面的 name 名称

可以使用 v-bind 绑定一个 name 数组,也可用 ',' 隔开,也可使用正则表达式,多个的情况建议使用第三种

注意:是缓存页面的 name 名称,而不是缓存页面路由的 name 名称

3、缓存多个指定路由

<keep-alive>
  <router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive"></router-view>

使用两个 router-view 标签分别作为缓存和不缓存的路由出口,在路由配置的时候,只需要给要缓存的页面加上 meta 属性,然后添加 keepAlive 属性设置为 true 即可。例如:

{
 path:'/test',
 name:'Test',
 component: Test,
 meta: {keepAlive: true} //true缓存 false不缓存
}

四、activated和deactivated

activateddeactivated 这两个生命周期函数一定是要在使用了 keep-alive 组件后才会有的,否则则不存在。

当引入 keep-alive 的时候,页面第一次进入

钩子的触发顺序 created-> mounted -> activated,退出时触发deactivated。

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

注意:keep-alive里面紧跟包裹 router-view 组件,而不能出现其他标签,不然会导致无法缓存页面。

如果需要在路由不变的情况下,无白屏刷新页面,请参照前文:vue.js路由不变,无白屏刷新页面

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
js判断运行jsp页面的浏览器类型以及版本示例
Oct 30 Javascript
教你用jquery实现iframe自适应高度
Jun 11 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
Dec 16 Javascript
jQuery实现为控件添加水印文字效果(附源码)
Dec 02 Javascript
JS操作XML实例总结(加载与解析XML文件、字符串)
Dec 08 Javascript
jquery模拟实现鼠标指针停止运动事件
Jan 12 Javascript
javascript实现鼠标点击页面 移动DIV
Dec 02 Javascript
详解Vue中localstorage和sessionstorage的使用
Dec 22 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
Sep 29 Javascript
React 路由懒加载的几种实现方案
Oct 23 Javascript
node.js中path路径模块的使用方法实例分析
Feb 13 Javascript
js实现石头剪刀布游戏
Oct 11 Javascript
vue简单封装axios插件和接口的统一管理操作示例
Feb 02 #Javascript
vue实现路由不变的情况下,刷新页面操作示例
Feb 02 #Javascript
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
Feb 01 #jQuery
基于node+vue实现简单的WebSocket聊天功能
Feb 01 #Javascript
基于vue和websocket的多人在线聊天室
Feb 01 #Javascript
node crawler如何添加promise支持
Feb 01 #Javascript
js 计算月/周的第一天和最后一天代码
Feb 01 #Javascript
You might like
文件上传的实现
2006/10/09 PHP
php绝对路径与相对路径之间关系的的分析
2010/03/03 PHP
php通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
php遍历CSV类实例
2015/04/14 PHP
从阿里妈妈发现的几个不错的表单验证函数
2007/09/21 Javascript
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
jQuery源码解读之hasClass()方法分析
2015/02/20 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
2015/04/22 Javascript
javascript常用方法总结
2015/05/14 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
2016/03/08 Javascript
vue.js学习之递归组件
2016/12/13 Javascript
Vue.js实现网格列表布局转换方法
2017/08/25 Javascript
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
VSCode配置react开发环境的步骤
2017/12/27 Javascript
Vue循环组件加validate多表单验证的实例
2018/09/18 Javascript
微信小程序canvas.drawImage完全显示图片问题的解决
2018/11/30 Javascript
手机浏览器唤起微信分享(JS)
2020/10/11 Javascript
微信小程序实现多张图片上传功能
2020/11/18 Javascript
Pyramid Mako模板引入helper对象的步骤方法
2013/11/27 Python
python解析xml文件操作实例
2014/10/05 Python
浅谈Python的垃圾回收机制
2016/12/17 Python
python dataframe astype 字段类型转换方法
2018/04/11 Python
便捷提取python导入包的属性方法
2018/10/15 Python
用python标准库difflib比较两份文件的异同详解
2018/11/16 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
python不使用for计算两组、多个矩形两两间的iou方式
2020/01/18 Python
Tensorflow实现在训练好的模型上进行测试
2020/01/20 Python
如何清空python的变量
2020/07/05 Python
css3制作动态进度条以及附加jQuery百分比数字显示
2012/12/13 HTML / CSS
什么是Assembly(程序集)
2014/09/14 面试题
运动会800米赞词
2015/07/22 职场文书
CSS3 制作的悬停缩放特效
2021/04/13 HTML / CSS
mysql函数之截取字符串的实现
2022/08/14 MySQL