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 相关文章推荐
CSS(js)限制页面显示的文本字符长度
Dec 27 Javascript
JS绘制生成花瓣效果的方法
Aug 05 Javascript
jQuery formValidator表单验证
Jan 07 Javascript
JS动态插入并立即执行回调函数的方法
Apr 21 Javascript
jQuery+CSS3实现点赞功能
Mar 13 Javascript
Node.js中多进程模块Cluster的介绍与使用
May 27 Javascript
vue实现全选和反选功能
Aug 31 Javascript
ES6 javascript中class类的get与set用法实例分析
Oct 30 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
Mar 16 jQuery
Vue使用v-viewer实现图片预览
Oct 21 Javascript
uni-app实现获取验证码倒计时功能
Nov 01 Javascript
vue实现登陆页面开发实践
May 30 Vue.js
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新手上路(九)
2006/10/09 PHP
php的array_multisort()使用方法介绍
2012/05/16 PHP
PHP定时任务延缓执行的实现
2014/10/08 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
php多重接口的实现方法
2015/06/20 PHP
作为程序员必知的16个最佳PHP库
2015/12/09 PHP
php连接oracle数据库的核心步骤
2016/05/26 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
use jscript List Installed Software
2007/06/11 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
2014/01/02 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
AngularJS入门教程(零):引导程序
2014/12/06 Javascript
JSON格式的键盘编码对照表
2015/01/29 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
Bootstrap整体框架之JavaScript插件架构
2016/12/15 Javascript
JS小球抛物线轨迹运动的两种实现方法详解
2017/12/20 Javascript
Echarts之悬浮框中的数据排序问题
2018/11/08 Javascript
vue 路由子组件created和mounted不起作用的解决方法
2019/11/05 Javascript
js实现圆形菜单选择器
2020/12/03 Javascript
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
python获取本机mac地址和ip地址的方法
2015/04/29 Python
python中subprocess批量执行linux命令
2018/04/27 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
python 获取谷歌浏览器保存的密码
2021/01/06 Python
css3 响应式媒体查询的示例代码
2019/09/25 HTML / CSS
如何处理简单的PHP错误
2015/10/14 面试题
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
班主任工作年限证明
2014/01/12 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
建筑工地质量标语
2014/06/12 职场文书
环保宣传标语
2014/06/12 职场文书
移交协议书
2014/08/19 职场文书
升级 Win11 还是坚守 Win10?微软 Win11 新系统缺失功能大盘点
2022/04/05 数码科技