前端开发中怎么把链接转为二维码并展示?

前言:

把一个链接生成一个二维码图片,这是我们前端非常常见的一个需求。那么我们应该如何做呢?

查看往期文章:

五分钟一百行代码,手写一个vue项目全局通用的toast提示组件

十五分钟两百行代码,手写一个vue项目全局通用的弹框

第一步:下载 Qrcode

shell 复制代码
npm install --save qrcode

第二步:准备容器

我们生成的二维码图片需要一个展示的容器,我们需要提前准备好。

html 复制代码
<div id="qrCode"></div>

第三步:引入并使用

js 复制代码
import QRCode from 'qrcode'

new QRCode(document.getElementById("qrCode"), {
    text: shareLink + "&p=qr_code&v=3", //生成二维码的文本
    width: document.querySelector("#qrCode").offsetWidth,
    height: document.querySelector("#qrCode").offsetWidth,
    colorDark: "#333333", //二维码颜色
    colorLight: "#ffffff", //二维码背景色
    correctLevel: QRCode.CorrectLevel.L //容错率,L/M/H
});

说明:

  1. 当你通过new调用之后就能生成要给二维码图片了,并且能够显示在你指定的容器当中;
  2. 因为我自己开发vue项目比较多,在vue项目中使用时,需要注意,最好放在 nextTick 中使用,保证容器渲染完成;
js 复制代码
this.$nextTick(() => {
		new QRCode(document.getElementById("qrCode"), {
		text: shareLink + "&p=qr_code&v=3", //生成二维码的文本
		width: document.querySelector("#qrCode").offsetWidth,
		height: document.querySelector("#qrCode").offsetWidth,
		colorDark: "#333333", //二维码颜色
		colorLight: "#ffffff", //二维码背景色
		correctLevel: QRCode.CorrectLevel.L //容错率,L/M/H
	});
});
  1. correctLevel 容错率说明:

    • 在二维码(QR Code)的上下文中,容错率(Correct Level)是一个非常重要的概念,它表示二维码能在多大程度上被破损或遮挡而仍然能够被成功扫描和解码。容错率的设置对于二维码的实用性在实际应用中非常关键,尤其是在可能会遭受物理损害或部分遮挡的环境中。
    • 二维码标准定义了四个容错级别,每个级别都能容忍一定比例的二维码图像损坏:
      1. L (Low) :约7% 的错误可以被纠正。
      2. M (Medium) :约15% 的错误可以被纠正。
      3. Q (Quartile) :约25% 的错误可以被纠正。
      4. H (High) :约30% 的错误可以被纠正。
    • 选择更高的容错级别会增加二维码的复杂度和大小,因为需要加入更多的冗余数据来实现错误校正。这意味着相同的数据内容,高容错率的二维码可能会比低容错率的二维码大或包含更密集的模块(黑点和白点)。
    • 如果二维码不太可能受到损害或遮挡,并且空间有限,可以选择较低的容错率(如L或M)。
    • 如果二维码可能会在较为恶劣的环境中使用,或者预计会有一部分被遮挡或破损,应选择较高的容错率(如Q或H),以确保二维码仍然可读。

写在后面

这是一个通用的 qrcode 库的通用使用流程,跟框架无关,你可以按照流程操作;

对你有帮助的话给作者点一个免费的关注吧,感恩!Peace and love~~

相关推荐
学如逆水,不进则退20 分钟前
在线免费音频剪辑:NBTools 可视化波形裁剪 MP3/WAV,本地处理免上传
前端·音视频
Mh29 分钟前
虚拟滚动真的比普通滚动性能更好吗?
前端·javascript·性能优化
pe7er34 分钟前
React + Ant Design 中的 IME (输入法合成)安全输入组件
前端
Super 含1 小时前
Android 启动优化(二):TTID、TTFD 与 Macrobenchmark 启动性能测量
前端
Python私教1 小时前
别急着加 llms.txt:企业官网面向 AI 搜索的工程清单
前端·人工智能·seo
东方小月2 小时前
从零开发一个 Coding Agent(十三):实现安全的 read 文件读取工具
前端·人工智能·全栈
东方小月2 小时前
从零开发一个 Coding Agent(十二):实现版本化 JSONL 与真实 CLI 入口
前端·设计模式·前端框架
FL16238631293 小时前
室内易燃物识别易燃评估室内易燃程度识别分割数据集labelme格式1015张85类别
java·服务器·前端
用户059540174463 小时前
把 AI 长期记忆去重测试从 20 分钟压到 40 秒,重复率从 18% 干到 1.5%
前端·css
kyriewen3 小时前
我把 AI 写的并发请求控制器手写了一遍——3 个语义我当时根本讲不清
前端·javascript·面试