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 相关文章推荐
查找页面中所有类为test的结点的方法
Mar 28 Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
Jul 27 Javascript
浅析javascript函数表达式
Feb 10 Javascript
JSON简介以及用法汇总
Feb 21 Javascript
JS使用单链表统计英语单词出现次数
Jun 16 Javascript
AngularJS实现动态编译添加到dom中的方法
Nov 04 Javascript
jQuery实现动态文字搜索功能
Jan 05 Javascript
使用ionic播放轮询广告的实现方法(必看)
Apr 24 Javascript
JavaScrpt的面向对象全面解析
May 09 Javascript
关于webpack2和模块打包的新手指南(小结)
Aug 07 Javascript
vue-cli3脚手架的配置及使用教程
Aug 28 Javascript
vue实践---vue不依赖外部资源实现简单多语操作
Sep 21 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
PHP 面向对象 final类与final方法
2010/05/05 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
PHP文件上传类实例详解
2016/04/08 PHP
php实现二叉树中和为某一值的路径方法
2018/10/14 PHP
最近项目写了一些js,水平有待提高
2009/01/31 Javascript
jquery怎样实现ajax联动框(二)
2013/03/08 Javascript
jQuery Validate 验证,校验规则写在控件中的具体实例
2014/02/27 Javascript
新手快速学习JavaScript免费教程资源汇总
2015/06/25 Javascript
chrome调试javascript详解
2015/10/21 Javascript
深入理解angularjs过滤器
2016/05/25 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
使用vue构建移动应用实战代码
2017/08/02 Javascript
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
微信小程序实现图片上传放大预览删除代码
2020/06/28 Javascript
echarts设置图例颜色和地图底色的方法实例
2018/08/01 Javascript
JS利用prototype给类添加方法操作详解
2019/06/21 Javascript
vue实现pdf文档在线预览功能
2019/11/26 Javascript
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
vue-router 路由传参用法实例分析
2020/03/06 Javascript
python通过加号运算符操作列表的方法
2015/07/28 Python
Python使用struct处理二进制的实例详解
2017/09/11 Python
python读取大文件越来越慢的原因与解决
2019/08/08 Python
django formset实现数据表的批量操作的示例代码
2019/12/06 Python
利用CSS3伪元素实现逐渐发光的方格边框
2017/05/07 HTML / CSS
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
艺术设计专业个人求职信
2013/09/21 职场文书
给老婆的婚前保证书
2014/02/01 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
实习证明格式范文
2014/10/14 职场文书
个人年终总结结尾
2015/03/06 职场文书
运动会闭幕式致辞
2015/07/29 职场文书
2016干部作风整顿心得体会
2016/01/22 职场文书
python3 sqlite3限制条件查询的操作
2021/04/07 Python
详解JS ES6编码规范
2021/05/07 Javascript
SQL注入详解及防范方法
2021/12/06 MySQL