vue中keep-alive的用法及问题描述


Posted in Javascript onMay 15, 2018

1.keep-alive的作用以及好处

在做电商有关的项目中,当我们第一次进入列表页需要请求一下数据,当我从列表页进入详情页,详情页不缓存也需要请求下数据,然后返回列表页,这时候我们使用keep-alive来缓存组件,防止二次渲染,这样会大大的节省性能。

2.keep-alive的基本用法

在app.vue中

<!-- 缓存所有的页面 -->
<keep-alive>
 <router-view v-if="$route.meta.keep_alive"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keep_alive"></router-view>

需要缓存的组件内容直接在router中添加:

meta: {
 keepAlive: true // true 表示需要使用缓存 false表示不需要被缓存
 }

3.keep-alive的生命周期

当引入keep-alive的时候,页面第一次进入,钩子的触发顺序created-> mounted-> activated,退出时触发deactivated。当再次进入(前进或者后退)时,只触发activated。

下面看下vue中 keep-alive 的使用问题及解决方案

问题描述

在业务开发中,会有路由跳转但是返回需要保留数据的场景;vue 中提供了 keep-alive 来处理

解决方案

返回dom不让其重新刷新,在vue-view外面包一层, 当引入keep-alive的时候,页面第一次进入,钩子的触发顺序created-> mounted-> activated,退出时触发deactivated。当再次进入(前进或者后退)时,只触发activated。

 事件挂载的方法等,只执行一次的放在 mounted 中;组件每次进去执行的方法放在 activated 中;
 可以将 是否包裹 keep-alive 通过参数配置;

<keep-alive>
  <router-view v-if="$route.meta.keepAlive" style="min-height:100%"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive" style="min-height:100%"></router-view>
//不需要刷新的路由配置里面配置 meta: {keepAlive: true}, 这个路由则显示在上面标签;
//需要刷新的路由配置里面配置 meta: {keepAlive: false}, 这个路由则显示在下面标签;

总结

以上所述是小编给大家介绍的vue中keep-alive的用法及问题描述,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
实现点击列表弹出列表索引的两种方式
Mar 08 Javascript
A标签触发onclick事件而不跳转的多种解决方法
Jun 27 Javascript
javascript中DOM复选框选择用法实例
May 14 Javascript
jQuery配合coin-slider插件制作幻灯片效果的流程解析
May 13 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
Jul 22 jQuery
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
Aug 04 Javascript
在vue里面设置全局变量或数据的方法
Mar 09 Javascript
Vue.js下拉菜单组件使用方法详解
Oct 19 Javascript
详细分析Node.js 多进程
Jun 22 Javascript
Vue filter 过滤器、以及在table中的使用介绍
Sep 07 Javascript
原生js实现贪吃蛇游戏
Oct 26 Javascript
Vue 事件的$event参数=事件的值案例
Jan 29 Vue.js
react中使用swiper的具体方法
May 15 #Javascript
vue addRoutes实现动态权限路由菜单的示例
May 15 #Javascript
浅谈AngularJS中$http服务的简单用法
May 15 #Javascript
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
May 15 #Javascript
解决linux下node.js全局模块找不到的问题
May 15 #Javascript
vue :src 文件路径错误问题的解决方法
May 15 #Javascript
利用npm 安装删除模块的方法
May 15 #Javascript
You might like
Phpbean路由转发的php代码
2008/01/10 PHP
详解yii2使用多个数据库的案例
2017/06/16 PHP
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
js实现页面打印功能实例代码(附去页眉页脚功能代码)
2009/12/15 Javascript
JavaScript 设计模式 安全沙箱模式
2010/09/24 Javascript
使用Jquery搭建最佳用户体验的登录页面之记住密码自动登录功能(含后台代码)
2011/07/10 Javascript
公共js在页面底部加载的注意事项介绍
2013/07/18 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
2013/10/24 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
JavaScript替换当前页面的方法
2015/04/03 Javascript
jquery图片滚动放大代码分享(1)
2015/08/25 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
js css+html实现简单的日历
2016/07/14 Javascript
JavaScript中子对象访问父对象的方式详解
2016/09/01 Javascript
JS遍历ul下的li点击弹出li的索引的实现方法
2016/09/19 Javascript
NodeJS仿WebApi路由示例
2017/02/28 NodeJs
vue中七牛插件使用的实例代码
2017/07/28 Javascript
webpack源码之loader机制详解
2018/04/06 Javascript
javascript实现蒙版与禁止页面滚动
2020/01/11 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
python使用os模块的os.walk遍历文件夹示例
2014/01/27 Python
Python单元测试框架unittest简明使用实例
2015/04/13 Python
Python判断字符串与大小写转换
2015/06/08 Python
pandas多级分组实现排序的方法
2018/04/20 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
2019/01/22 Python
python将字符串转变成dict格式的实现
2019/11/18 Python
python selenium自动化测试框架搭建的方法步骤
2020/06/14 Python
递归计算如下递归函数的值(斐波拉契)
2012/02/04 面试题
简单叙述一下MYSQL的优化
2016/05/09 面试题
工商管理实习生自我鉴定范文
2013/12/18 职场文书
英语演讲稿范文
2014/01/03 职场文书
教学副校长工作总结
2015/08/13 职场文书
导游词之四川熊猫基地
2020/01/13 职场文书
python pygame入门教程
2021/06/01 Python
关于python pygame游戏进行声音添加的技巧
2021/10/24 Python
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL