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 相关文章推荐
JavaScript 新手24条实用建议[TUTS+]
Jun 21 Javascript
javascript 闭包疑问
Dec 30 Javascript
jQuery仿Excel表格编辑功能的实现代码
May 01 Javascript
jQuery怎么解析Json字符串(Json格式/Json对象)
Aug 09 Javascript
jquery实现带二级菜单的导航示例
Apr 28 Javascript
js实现文字垂直滚动和鼠标悬停效果
Dec 31 Javascript
JavaScript中的时间处理小结
Feb 24 Javascript
详解node.js搭建代理服务器请求数据
Apr 08 Javascript
VSCode 配置React Native开发环境的方法
Dec 27 Javascript
详解微信小程序调起键盘性能优化
Jul 24 Javascript
Node.js一行代码实现静态文件服务器的方法步骤
May 07 Javascript
原生Js 实现的简单无缝滚动轮播图的示例代码
May 10 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
第十四节--命名空间
2006/11/16 PHP
用javascript操作xml
2006/11/04 Javascript
JavaScript对象链式操作代码(jquery)
2010/07/04 Javascript
jQuery插件formValidator实现表单验证
2016/05/23 Javascript
值得分享的轻量级Bootstrap Table表格插件
2016/05/30 Javascript
JavaScript表单焦点自动切换代码
2016/07/24 Javascript
D3.js实现文本的换行详解
2016/10/14 Javascript
JS批量替换内容中关键词为超链接
2017/02/20 Javascript
微信小程序实现滑动删除效果
2017/05/19 Javascript
微信小程序url与token设置详解
2017/09/26 Javascript
JS 数组随机洗牌的实例代码
2018/09/12 Javascript
解决layui表格内文本超出隐藏的问题
2019/09/12 Javascript
vue使用prop可以渲染但是打印台报错的解决方式
2019/11/13 Javascript
JS动态图片的实现方法完整示例
2020/01/13 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
python实现2014火车票查询代码分享
2014/01/10 Python
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
Django中ORM外键和表的关系详解
2019/05/20 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
使用python实现下载我们想听的歌曲,速度超快
2020/07/09 Python
Python实时监控网站浏览记录实现过程详解
2020/07/14 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
2020/11/24 Python
Ralph Lauren拉夫·劳伦美国官网:带有浓郁美国气息的高品味时装品牌
2017/11/01 全球购物
社会实践自我鉴定
2013/11/07 职场文书
工业学校毕业生自荐书
2014/01/03 职场文书
农民工工资发放承诺书
2014/03/31 职场文书
争先创优心得体会
2014/09/12 职场文书
毕业横幅标语
2014/10/08 职场文书
三严三实学习心得体会
2014/10/13 职场文书
工程催款通知书
2015/04/17 职场文书
何时使用Map来代替普通的JS对象
2021/04/29 Javascript
CSS 新特性 contain控制页面的重绘与重排问题
2021/04/30 HTML / CSS
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python
如何使用 resize 实现图片切换预览功能
2021/08/23 HTML / CSS