vue项目使用qrcodejs2遇到Cannot read property ‘appendChild‘ of null

news2025/3/11 3:09:01

 

这个问题是节点还没创建渲染完就读取节点,这个时候应该先让节点渲染完成在生成,解决方法有以下两种

1、使用$nextTick()方法进行,这个方法是用来在节点创建渲染完成后进行的操作

      that.$nextTick(() => {
        let qrcode = new QRCode("qrcode", {
          width: 132,
          height: 132,
          text: "https://www.baidu.com/", // 二维码地址
          colorDark: "#000",
          colorLight: "#fff",
        });
      });

2、使用延时方法

      setTimeout(function () {
        new QRCode("qrcode", {
          width: 132,
          height: 132,
          text: "https://www.baidu.com/", // 二维码地址
          colorDark: "#000",
          colorLight: "#fff",
        });
      }, 200);

相比之下还是第一种比较好,延时不能精确

原文“vue项目使用qrcodejs2遇到Cannot read property ‘appendChild‘ of null“_scarecrowll的博客-CSDN博客

vue使用qrcodejs2进行二维码显示以及下载

1、安装qrcodejs2

npm install --save qrcodejs2

2、引入qrcodejs2

import QRCodejs from 'qrcodejs2';

3、使用

html:

<div ref="locatorQRCodeRef"></div>
<!-- 作为下载二维码使用 -->
<a ref="locatorQRCodeDownloadLinkRef" style="display: none"></a>

js:

new QRCodejs(this.$refs.locatorQRCodeRef, {
    text: ‘www.baidu.com’, // 需要变成二维码的文本
    width: 260,
    height: 260,
    colorDark: '#333', // 二维码颜色
    colorLight: '#fff', // 二维码背景颜色
    correctLevel: QRCodejs.CorrectLevel.L //容错率,L/M/H
});

let qrcodeCanvas = ((this.$refs.locatorQRCodeRef || {})?.getElementsByTagName?.('canvas') || [])?.[0];
this.qrcodeImgUrl = qrcodeCanvas?.toDataURL?.('image/png'); // 作为下载图片资源

vue:

<template>
  <div>
    <div id="qrcode"></div> <!-- 创建一个div,并设置id为qrcode -->
  </div>
</template>
   
<script>
import QRCode from 'qrcodejs2'  // 引入qrcode
export default {
  name : 'test',
  mounted () {
    this.qrcode();
  },
  methods: {
    qrcode() {
      let qrcode = new QRCode('qrcode', {
        width: 132,  
        height: 132,
        text: 'https://www.baidu.com', // 二维码地址
        colorDark : "#000",
        colorLight : "#fff",
      })
    },
  }
}
</script>

4、效果

5、下载二维码功能(打印功能在另外一篇:https://www.cnblogs.com/zaijin-yang/p/16896229.html)

 

handleDownloadLocatorQRCode() {
      let downloadLink = this.$refs.locatorQRCodeDownloadLinkRef;
      downloadLink.setAttribute('href', this.qrcodeImgUrl);
      downloadLink.setAttribute(
        'download',
        `二维码_${new Date().getTime()}.png`
      );
      downloadLink.click();
      URL.revokeObjectURL(downloadLink.href);
},

原文:https://www.cnblogs.com/zaijin-yang/p/16896566.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/894696.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【算法测试】盒子上绑定好的算法,只能输入rtsp流, 如何测试其精度? 讲图片拼接成视频,然后生成rtsp流

文章目录 前言1. 安装rtsp服务器2. 用ffmpeg推送视频到rtsp3.用VLC 承接播放&#xff0c;查看效果&#xff1a;4. 找一个测试集图片集&#xff0c;生成视频 前言 要测试盒子上的算法精度&#xff0c;但盒子的算法只能输入rtsp流&#xff0c;这样我们难道只能去摄像头底下演示效…

【多线程】JUC的常见类

1. Callable 接口 首先先来认识下什么是 JUC&#xff0c;JUC 全称为 java.util.concurrent&#xff0c;这个包里面放了并发编程(多线程相关的组件) Callable 接口类似于 Runnable 一样&#xff0c;Runnable 用来描述一个任务&#xff0c;而 Callable 也是用来描述一个任务的。 …

爱分析发布2023商业智能最佳实践案例,OceanMind海睿思再次入选!

近日&#xff0c;中国领先的产业数字化研究与咨询机构 爱分析&#xff0c;在北京举办了第五届数据智能高峰论坛&#xff0c;活动以“激活数据资产&#xff0c;释放数据价值”为主题。 中新赛克海睿思作为数字化转型优秀厂商代表受邀参会。 会上&#xff0c;爱分析重磅发布了《…

Keepalived + Nginx 实现高可用

一、简介 浮动IP、漂移IP地址又叫做VIP&#xff0c;也就是虚拟IP。 Keepalived 是一种高性能的服务器高可用或热备解决方案。 Keepalived 可以用来防止服务器单点故障的发生&#xff0c;通过配合 Nginx 可以实现 web 前端服务的高可用。 Keepalived 以 VRRP 协议为实现基础&a…

批量删除文件名前的数字编号?

批量删除文件名前的数字编号&#xff1f;如果你在网上经常下载文件&#xff0c;你会发现下载的文件名称前面一般都会有很的数字编号&#xff0c;这些数字编号有时候会非常的长&#xff0c;导致文件的名称也非常的长&#xff0c;这样对于文件的管理和查找使用是不利的。所以为了…

推荐一个绘图平台(可替代Visio)

不废话&#xff0c;简易记网址&#xff1a; draw.io 网站会重定向到&#xff1a;https://app.diagrams.net/

LeetCode 141.环形链表

文章目录 &#x1f4a1;题目分析&#x1f4a1;解题思路&#x1f514;接口源码&#x1f4a1;深度思考❓思考1❓思考2 题目链接&#x1f449; LeetCode 141.环形链表&#x1f448; &#x1f4a1;题目分析 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中…

XDocReport文书生成总结

最近弄一个业务需要搞很多的word文档导出&#xff0c;供前端下载。之前的实现方式一般是先把word转成XML格式&#xff0c;然后赋值变量&#xff0c;这种方式虽然可行&#xff0c;但是遇到那种长篇且变量又多的文档&#xff0c;就很让人头大&#xff0c;密密麻麻的一堆代码&…

Spring-3-Spring AOP概念全面解析

今日目标 能够理解AOP的作用 能够完成AOP的入门案例 能够理解AOP的工作流程 能够说出AOP的五种通知类型 一、AOP 1 AOP简介 思考&#xff1a;什么是AOP,AOP的作用是什么&#xff1f; 1.1 AOP简介和作用【理解】 AOP(Aspect Oriented Programming)面向切面编程&#xff0c;一…

Windows系统修改域名DNS指向两种方式

一、直接打开对应文件进行修改 1、进入hosts文件目录&#xff1a;C:\Windows\System32\drivers\etc 2、右键打开HOSTS文件进行编辑&#xff0c;将需要对应的域名和IP地址进行配置 编写完成后 Ctrl s 进行保存即可。 二、使用DOS命令进行修改 1、按住键盘win键 r 打开命令…

设计师必备的5个PNG免抠素材网站,简直不要太好用~

广大设计师们是不是经常要用免抠素材的时候网上找的质量差&#xff0c;还要各种付费才能使用&#xff0c;最后只能打开PS慢慢的扣&#xff0c;真的很费时间。本期我就给大家推荐5个高质量、免费的免抠素材网站&#xff0c;有需要的朋友们赶紧收藏。 菜鸟图库 https://www.suc…

2021年3月全国计算机等级考试真题(C语言二级)

2021年3月全国计算机等级考试真题&#xff08;C语言二级&#xff09; 第1题 算法空间复杂度的度量方法是&#xff08;&#xff09; A. 算法程序的长度 B. 算法所处理的数据量 C. 执行算法所需要的工作单元 D. 执行算法所需要的存储空间 正确答案&#xff1a;D 第2题 下列叙…

wangEditor修改节点数据

前言 wangEditor简介 wangEditor 是一款基于 JavaScript 和 jQuery 的开源富文本编辑器&#xff0c;具有简单易用、功能丰富的特点。它提供了一整套的富文本编辑功能&#xff0c;包括文字样式设置、插入图片、插入表格、插入链接、代码块等。wangEditor 支持多种浏览器&#x…

大数据时代下的数据中心运维管理

摘要&#xff1a;本文将从数据中心运维管理的角度&#xff0c;联系现实情况&#xff0c;对运维管理进行研究&#xff0c;期望通过本项目的研究&#xff0c;显著提升数据中心运维治理的整体质量。这样&#xff0c;才能充分发挥大数据的价值&#xff0c;并推动企业加速发展。 关…

将nginx内存池代码单独编译运行,了解nginx内存池工作原理,附代码

初识nginx——内存池篇 https://www.cnblogs.com/magicsoar/p/6040238.html 为了自身使用的方便&#xff0c;Nginx封装了很多有用的数据结构&#xff0c;比如ngx_str_t ,ngx_array_t, ngx_pool_t 等等&#xff0c;对于内存池&#xff0c;nginx设计的十分精炼&#xff0c;值得我…

揭秘亚马逊广告运作:了解逻辑,事半功倍的广告成功!

亚马逊广告的多重形式亚马逊为卖家提供了多种广告形式&#xff0c;用于在平台上展示并推广产品。以下是亚马逊广告的主要形式&#xff1a; 1.Sponsored Products&#xff1a; 这是常见的广告类型&#xff0c;允许产品在搜索结果和产品页面中显示。广告与自然搜索结果相似&…

23款奔驰GLE450豪华型桃木方向盘,提升方向盘握感

桃木是目前国内各级车型中最为主流的木饰&#xff0c;虽然看起来一样&#xff0c;但是多数低端车型中配备的并非实木&#xff0c;而是由聚酯材料制成的仿桃木。其实我们这里所说的“桃木”也并非我们所熟知的那个可以结桃子的果树&#xff0c;而是胡桃木或是核桃木。胡桃木原产…

算法通关村第八关——轻松搞定翻转二叉树

二叉树有很多经典算法题&#xff0c;今天我们就来看一下二叉树里的翻转问题。 力扣226,给了一棵二叉树&#xff0c;要将二叉树整体翻转。 分析&#xff1a;观察图中翻转前后的二叉树&#xff0c;我们不难发现&#xff0c;翻转过程中&#xff0c;只需要把每一个节点的左右子节点…

13. Vuepress2.x 部署站点的基础路径从配置文件中读取

收到需求&#xff0c;站点要部署到 非根路径 下&#xff0c;且将来会根据 版本号 区分不同的基础路径。需要从统一的文件中读取&#xff0c;方便其它 js 文件和 config.js 配置统一读取。 目录 docs\.vuepress\public\cfg\ 下新建文件 version.js&#xff0c;内容如下 const P…

cmake扩展(5)——file命令排除部分文件

在cmake中可以使用file命令获取需要的文件&#xff0c;并且支持正则/通配符&#xff0c;使用起来还是很方便的。 #语法file({GLOB | GLOB_RECURSE} <out-var> [...] [<globbing-expr>...])#example file(GLOB_RECURSE SOURCES "src/*.h" "src/*.cp…