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 相关文章推荐
通过ifame指向的页面高度调整iframe的高度
Oct 05 Javascript
MooTools 页面滚动浮动层智能定位实现代码
Aug 23 Javascript
Uglifyjs(JS代码优化工具)入门 安装使用
Apr 13 Javascript
原生javascript实现简单的datagrid数据表格
Jan 02 Javascript
javascript中typeof操作符和constucor属性检测
Feb 26 Javascript
深入理解JavaScript中的call、apply、bind方法的区别
May 30 Javascript
JS中递归函数
Jun 17 Javascript
Angular和百度地图的结合实例代码
Oct 19 Javascript
react native 获取地理位置的方法示例
Aug 28 Javascript
Vue中的vue-resource示例详解
Nov 02 Javascript
javascript浅层克隆、深度克隆对比及实例解析
Feb 09 Javascript
Vue中computed和watch有哪些区别
Dec 19 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
PHP的历史和优缺点
2006/10/09 PHP
PHP安装全攻略:APACHE
2006/10/09 PHP
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
2010/08/01 PHP
浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法
2019/10/12 PHP
文本加密解密
2006/06/23 Javascript
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
jQuery EasyUI API 中文文档 - Tree树使用介绍
2011/11/19 Javascript
JavaScript面向对象程序设计三 原型模式(上)
2011/12/21 Javascript
jquery如何获取复选框的值
2013/12/12 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
jQuery插件扩展测试实例
2016/06/21 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
2017/02/20 Javascript
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
利用Node.js检测端口是否被占用的方法
2017/12/07 Javascript
vue的传参方式汇总和router使用技巧
2018/05/22 Javascript
记录微信小程序 height: calc(xx - xx);无效问题
2019/12/30 Javascript
Element InputNumber计数器的使用方法
2020/07/27 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
Python读取环境变量的方法和自定义类分享
2014/11/22 Python
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
Python学习笔记之For循环用法详解
2019/08/14 Python
python super用法及原理详解
2020/01/20 Python
python mysql中in参数化说明
2020/06/05 Python
解决pytorch 保存模型遇到的问题
2021/03/03 Python
售房委托书
2014/08/30 职场文书
税务干部群众路线教育实践活动对照检查材料
2014/09/20 职场文书
2014年化验员工作总结
2014/11/18 职场文书
2016新年慰问信范文
2015/03/25 职场文书
放假通知怎么写
2015/08/18 职场文书
Nginx缓存设置案例详解
2021/09/15 Servers
68行Python代码实现带难度升级的贪吃蛇
2022/01/18 Python
oracle设置密码复杂度及设置超时退出的功能
2022/06/28 Oracle
vue递归实现树形组件
2022/07/15 Vue.js