在vue中,有时候我们需要缓存一个页面,这个时候会用到keep-Alive。
触发场景:
在引用同一个子组件得两个页面,且该子组件会使用到dom元素得时候。
例如子组件

<template><div class="yd-dialog-black-mask" v-show="showMask"><div class="layer-wraper"><div class="picture"><img src="../../../static/img/photo.png" alt></div><div class="content"><h1>{{staffNo}}</h1><canvas id="qrcode"></canvas><span class="desc">扫我就是我的人~</span></div><div class="btn-wraper"><div class="close-icon" @click.stop="close()"></div></div></div></div>
</template>
<script>
import QRCode from "qrcode";
import { mapState } from "vuex";
export default {props: {showMask: Boolean},data() {return {staffNo: ""};},computed: {...mapState({quickMark: state => state.user.quickMark})},methods: {close() {this.$emit("on-close");}},created() {this.staffNo = localStorage.getItem("staffNo");},mounted() {let self = this;this.$nextTick(() => {QRCode.toCanvas(document.querySelector("#qrcode"),this.quickMark,function(err) {if (err) {self.toast("生成二维码异常,请稍后再试");}});});}
};
</script><style lang="less" scoped>
.yd-dialog-black-mask {top: 0 !important;bottom: 0 !important;justify-content: center !important;align-items: center;.layer-wraper {position: relative;.picture {position: absolute;text-align: center;width: 100%;.p2r(top, -120);img {.p2r(width, 312);}}.content {text-align: center;box-sizing: border-box;.p2r(padding-top, 120);.p2r(width, 530);.p2r(height, 618);border-radius: 10px;background: #fff;h1 {.p2r(font-size, 36);.p2r(line-height, 40);font-weight: bold;}#qrcode {.p2r(margin-top, 14);.p2r(width, 350) !important;.p2r(height, 350) !important;}.desc {display: block;.p2r(margin-top, 16);.p2r(font-size, 30);}}.btn-wraper {.close-icon {.p2r(width, 70);.p2r(height, 70);margin: auto;.p2r(margin-top, 44);background: url("../../img/icon-close.png") no-repeat center center;background-size: 100%;}}}
}
</style>

解决方法如上所示就是用nextTick来解决。。不使用nextTick来解决。。不使用nextTick来解决。。不使用nextTick得时候在从keep-Alive得组件切换到另一个组件时,dom元素未被销魂,导致子组件document.querySelector("#qrcode"),选中得时keep-alive得组件而非新得路由组件得dom。导致新路由页面得二维码未生成。

keep-Alive遇到的一个坑相关推荐

  1. 困扰多日的C#调用Haskell问题竟然是Windows的一个坑

    最近一直被C#调用Haskell时的"尝试读取或写入受保护的内存"问题所困扰(详见C#调用haskell遭遇Attempted to read or write protected ...

  2. SAP WM LT10事务代码的一个坑?

    SAP WM LT10事务代码的一个坑? 执行事务代码LT10,试图将storage type SAM下物料库存的几个SU转入同一个货架上.Storage type SAM有启用SUM功能的. 执行, ...

  3. mysql div 没有小数,mysql order by limit 的一个坑

    mysql order by limit 的一个坑 分页查询的时候遇到的坑: 发现的问题: 对单个无索引的字段进行排序后limit .发现当被排序字段有相同值时并且在limit范围内,取的值并不是正常 ...

  4. 移动端开发碰到一个坑

    移动端开发真是不断踩坑,今天在做一个移动端的组件,又发现了一个坑,记录到日志里面,做个记录,以便以后再遇到这个问题有个记录可以参考. 在ios中的chrome浏览器中,手指从屏幕上方移动出屏幕(一定要 ...

  5. centos 升级mysql_CentOS 7下升级MySQL5.7.23的一个坑

    发现CentOS 7下升级MySQL5.7.23的一个坑,以前面升级到MySQL 5.7.23的一个集群为例 在我们环境下打开文件描述符个数的参数open_files_limit在MySQL 5.6. ...

  6. 0705 - 说说 NSPopover 的一个坑

    今天开发 iTips,遇到一个很诡异的问题:NSOutlineView 中的 NSTableCellView 中的 NSTextField,始终有一个背景色,无论怎么设置都无法去掉.如下图中左侧部分所 ...

  7. nodejs request module里的json参数的一个坑

    今天工作的时候遇到一个坑,在客户端用nodejs给服务器发送HTTP请求,服务器老是报错:In the context of Data Services an unknown internal ser ...

  8. 记录我开发工作中遇到HTTP跨域和OPTION请求的一个坑

    我通过这篇文章把今天工作中遇到的HTTP跨域和OPTION请求的一个坑记录下来. 场景是我需要在部署在域名a的Web应用里用JavaScript去消费一个部署在域名b的服务器上的服务.域名b上的服务也 ...

  9. centos mysql 升级 5.7_CentOS 7下升级MySQL5.7.23的一个坑

    发现CentOS 7下升级MySQL5.7.23的一个坑,以前面升级到MySQL 5.7.23的一个集群为例 在我们环境下打开文件描述符个数的参数open_files_limit在MySQL 5.6. ...

  10. mongodb count 导致不正确的数量(mongodb count 一个坑)

    在mongodb 集群中,if  存在orphaned documents 和chunk migration, count查询可能会导致一个不正确的查询结果,例如我就是踩的这个坑,先不说话,看结果: ...

最新文章

  1. 第一部分:基础知识(第一章)屏幕部分续
  2. 转:delphi用URLDownloadToFile下载文件,用进度条跟踪下载进度
  3. 原创:QQ群发言统计
  4. java 正则表达式的包_用于Java包名称的Python正则表达式
  5. OpenNLP进行中文命名实体识别(上:预处理及训练模型)
  6. 免费的百度网盘批量转存软件工具
  7. 仿小米通讯录 右侧滑动条与带动画的悬停列表实现(一)
  8. Java Annotation自定义注解详解
  9. 使用Python处理excel表格(openpyxl)教程
  10. Power oj 2837: 剑道万古如长夜(单调队列优化DP)
  11. 怎么修改数据库服务器名字,修改SQL Server数据库服务器名字
  12. 【踩坑日记】Vue组件@click事件点击没有反应
  13. C++循环语句之在0-1000之间找出水仙花数。
  14. 在使用反向代理访问的服务器上配置远程jupyterNotebook
  15. 私密相册管家云盘计算机,‎私密相册管家 - 专业版加密密码照片和视频保险箱 di App Store...
  16. /MTd /MD /MDd
  17. python爬虫Pragmatic系列II
  18. 大学生能从计算机游戏中受益,2016年12月大学英语四级作文范文:大学生玩游戏...
  19. seo工具条】网站seo具体怎么做
  20. 图的最短路径--迪杰斯特拉算法 c语言

热门文章

  1. matlab premnmx归一化函数的使用
  2. 使用API 在zabbix监控系统中查看,创建及删除监控主机
  3. 新托福写作:对比论证法
  4. 二进制转十进制快速方法
  5. java内省_java内省机制
  6. linux 内核 vrf,linux - linux内核支持多少个vrf,哪些系统资源限制了vrf的数量? - 堆栈内存溢出...
  7. 斐波那契查找算法解析
  8. 患者到医院看病事件模拟(c++)
  9. 原神ios android,原神安卓和ios数据互通吗 原神ios和安卓能一起玩吗
  10. poj1129Channel Allocation 图的染色问题