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 相关文章推荐
JS类定义原型方法的两种实现的区别评论很多
Sep 12 Javascript
鼠标选择动态改变网页背景颜色的JS代码
Dec 10 Javascript
Jquery插件编写简明教程
Mar 25 Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
May 05 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
Apr 15 Javascript
Angular.Js的自动化测试详解
Dec 09 Javascript
详解js的六大数据类型
Dec 27 Javascript
jQuery Ajax async=&gt;false异步改为同步时,解决导致浏览器假死的问题
Jul 22 jQuery
微信小程序实现侧边栏分类
Oct 21 Javascript
如何使用JS console.log()技巧提高工作效率
Oct 14 Javascript
在vue项目中promise解决回调地狱和并发请求的问题
Nov 09 Javascript
JavaScript的Set数据结构详解
Feb 18 Javascript
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
PHP操作XML作为数据库的类
2010/12/19 PHP
一组PHP加密解密函数分享
2014/06/05 PHP
php实现的click captcha点击验证码类实例
2014/09/23 PHP
php去除二维数组的重复项方法
2015/11/03 PHP
PHP+MySQL存储数据常见中文乱码问题小结
2016/06/13 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
javascript 防止刷新,后退,关闭
2010/08/07 Javascript
关于jquery性能最佳实践的讨论,与求教
2012/03/30 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
编写高性能Javascript代码的N条建议
2015/10/12 Javascript
javascript设计简单的秒表计时器
2020/09/05 Javascript
javascript实现方法调用与方法触发小结
2016/03/26 Javascript
json格式的javascript对象用法分析
2016/07/04 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
2017/04/25 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
2018/01/07 Javascript
深入理解移动前端开发之viewport
2018/10/19 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
2019/09/20 Javascript
javascript前端和后台进行数据交互方法示例
2020/08/07 Javascript
pytorch中tensor的合并与截取方法
2018/07/26 Python
Django保护敏感信息的方法示例
2019/05/09 Python
Python简单处理坐标排序问题示例
2019/07/11 Python
python读写csv文件并增加行列的实例代码
2019/08/01 Python
对pytorch中的梯度更新方法详解
2019/08/20 Python
基于python plotly交互式图表大全
2019/12/07 Python
使用Pytorch来拟合函数方式
2020/01/14 Python
python获取天气接口给指定微信好友发天气预报
2020/12/28 Python
python爬取抖音视频的实例分析
2021/01/19 Python
英国卫浴商店:Ergonomic Design
2019/09/22 全球购物
如何启动时不需输入用户名与密码
2014/05/09 面试题
25道Java面试题集合
2013/05/21 面试题
企业精细化管理实施方案
2014/03/23 职场文书
专业技术职务聘任书
2014/03/29 职场文书
英语教育专业自荐信
2014/05/29 职场文书
水浒传读书笔记
2015/06/25 职场文书
2015年卫生局工作总结
2015/07/24 职场文书