使用 qrcode 生成二维码

news2024/11/26 14:55:38

qrcode

      • 1 安装
      • 2 引入
      • 3 使用
        • 3.1 方法1 :QRCode.toCanvas()
        • 3.2 方法2 :QRCode.toDataURL()
      • 4 完整示例

qrcode 是一个用于生成二维码的 JavaScript 库。主要是通过获取 DOM 的标签,再通过 HTML5 Canvas 绘制而成

1 安装

npm install --save qrcode

2 引入

import QRCode from 'qrcode';

如果您使用的 TypeScript,则在引入的时候可能会提示一下 error:

在这里插入图片描述

无法找到模块“qrcode”的声明文件。“C:/Users/shaoming/Desktop/swimxu/swim-react/node_modules/qrcode/lib/index.js”隐式拥有 “any” 类型。

尝试使用 npm i --save-dev @types/qrcode (如果存在),或者添加一个包含 declare module 'qrcode'; 的新声明(.d.ts)文件ts(7016)

则需要安装 @types/qrcode,即可解决。

npm install --save @types/qrcode 

3 使用

3.1 方法1 :QRCode.toCanvas()

直接操作DOM,适合用于将二维码直接下载到本地。

<canvas id='canvas' />
const canvas = document.getElementById('canvas'); // 获取canvas节点
QRCode.toCanvas(canvas, '二维码中存储的数据内容'); // 绘制二维码

3.2 方法2 :QRCode.toDataURL()

适合 react 使用。

<img src={imgUrl} />
const [imgUrl, setImgUrl] = useState('')
......

QRCode.toDataURL('二维码中存储的数据内容', (error: Error | null | undefined, url: string) => {
	setImgUrl(url); // 将获取的url存到state中,方便img标签中使用
});

4 完整示例

React 使用 qrcode 实例:

import { useState } from 'react';
import { Button } from 'antd';
import QRCode from 'qrcode';

const View = () => {
  const [imgUrl, setImgUrl] = useState('')

  const handleClick = async () => {
    const value = '二维码中存储的数据内容'

	const canvas = document.getElementById('canvas');
    QRCode.toCanvas(canvas, value);
      
    QRCode.toDataURL(value, (error: Error | null | undefined, url: string) => {
      setImgUrl(url);
    });
  }

  return (
    <div style={{ width: 240, margin: '100px auto', textAlign: 'center' }}>
      <Button
        type='primary'
        onClick={handleClick}
        style={{ width: 240, margin: '40px auto' }}
      >
        点击生成二维码
      </Button>
      <canvas id='canvas' />
      <img src={imgUrl} />
    </div >
  )
}

export default View

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

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

相关文章

本地部署开发环境过程和遇到的问题总结

一、 软件安装&#xff0c;环境配置 安装配置jdk(不能只有jre)安装配置maven安装配置git安装idea 二、拉项目 在云效代码管理中选择对应的库&#xff0c;复制其仓库地址 在idea中配置git 参考https://blog.csdn.net/qq_62701769/article/details/125029536 拉代码 URL输入…

叠氮试剂知识整理:6-azidohexan-1-amine|349553-73-7|6-叠氮基己胺

产品描述&#xff1a; 6-azidohexan-1-amine呈淡黄色或无色油状&#xff0c;含有叠氮基。叠氮化物可以与炔烃、DBCO和BCN进行铜催化的点击化学反应。NHS酯可以与胺基反应&#xff0c;形成稳定的酰胺键。点击化学反应效率高&#xff0c;即使在低浓度(μM)和低温(4oc)下&#xff…

安卓蓝牙耳机哪个牌子好?安卓手机蓝牙耳机推荐

目前&#xff0c;蓝牙耳机迅速流行于人们的视野当中&#xff0c;在各种场合中&#xff0c;肯定少不了一款蓝牙耳机&#xff0c;但现在的运动耳机可谓五花八门&#xff0c;虽然苹果手机广泛于市场&#xff0c;但是安卓品牌也在不断的采用最新技术的研发&#xff0c;下面是小编整…

Baklib知识分享|企业产品需求文档的特点

产品或服务是公司的核心。没有产品就没有业务。 虽然我们一直在努力追求卓越的产品&#xff0c;但我们有可能不能够达成目标。你可能经常基于你对产品的基本想法来构建产品。有时&#xff0c;您可能只是运行迭代或向您的产品团队提出特性需求。你不能只是临时拼凑一些构成你业…

分组后统计查询

【问题】 I am trying to select top values in a column based on the variable/field in another column. it is a very large tab delimited file. Input: Names col2 col3 col4 A A1 def 10 A A1 BBB 10 A A1 CED 10 A A1 fff 7.5 B B1…

2022秋季信息安全技术(期末复习)

目录 问答题考点&#xff1a; 1.简单替换密码加解密 2.DES算法的原理&#xff1a; ​编辑3.RSA算法的全过程&#xff1a; 4.基于公开密钥的数字签名方案 5.单项散列函数的特点&#xff1a; 6.简述信息的完整性、可用性、保密性 7.简述数字水印的主要特征 8.论述公开密钥…

Qt 工程添加windows库文件

文章目录背景编译出错查看openTrace函数在Qt 工程中添加库文件添加后pro文件背景 项目中用到了“C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\shared\evntrace.h" 文件中的接口OpenTrace 等。 编译出错 error LNK2019&#xff1a; 查看openTrace函数…

R语言中的LDA模型:对文本数据进行主题模型topic modeling分析

主题建模 在文本挖掘中&#xff0c;我们经常收集一些文档集合&#xff0c;例如博客文章或新闻文章&#xff0c;我们希望将其分成组&#xff0c;以便我们可以分别理解它们。最近我们被客户要求撰写关于主题模型的研究报告&#xff0c;包括一些图形和统计输出。主题建模是对这些…

SoftLabel

来从标签平滑和知识蒸馏理解&#xff0c;先探讨一下hard label和soft label之间的关系&#xff0c;然后介绍一下如何用可靠的方法得到蕴含更多信息的soft label&#xff0c;其中主要包含标签平滑和知识蒸馏两种经典方法。 深度学习领域中&#xff0c;通常将数据标注为hard lab…

Listener(监听器)-ServletContextListener

开发工具与关键技术&#xff1a; IDEA 撰写时间&#xff1a;2022/11/28 监听器可以监听就是在 application &#xff0c; session &#xff0c; request 三个对象创建、销毁或者往其中添加修改删除属性时自动执行代码的功能组件。 ​ application 是 ServletContext 类型的…

linux-划分分区挂载磁盘

本操作以该场景为例&#xff0c; 当云主机挂载了—块新的数据盘时&#xff0c; 使用fdisk分区工具将该数据盘设为主分区&#xff0c; 分区方式默认设置为MBR, 文件系统设为ext4格式&#xff0c; 挂载在 “/mnt/sdc"下&#xff0c; 并设置开机启动自动挂载。 1.执行以…

Vue3常用知识点总结

一、vue3的基本介绍及项目创建 Vue是一套用于构建用户界面的渐进式框架。Vue.js 3.0 "One Piece" 正式版在2020年9月份发布,经过了2年多开发, 100位贡献者, 2600次提交, 600次PR&#xff0c;同时Vue3也支持Vue2的大多数特性,且,更好的支持了TypeScript,也增加了很多的…

Linux 进程信号深剖

目录传统艺能&#x1f60e;概念&#x1f914;信号发送&#x1f914;信号记录&#x1f914;信号产生&#x1f914;常见信号处理方式&#x1f914;终端按键产生信号&#x1f914;核心转储&#x1f60b;如何调试&#x1f914;系统函数发送信号&#x1f914;raise函数&#x1f914;…

单片机驱动LCD

单片机驱动LCD的方法有很多&#xff0c;网络上也有很多配套的例程&#xff0c;但是&#xff0c;网上例程千千万&#xff0c;谁是你的“no.1”。 今天给大家分享一个以面向对象的方式用单片机驱动LCD的思路。 LCD种类概述 在讨论怎么写LCD驱动之前&#xff0c;我们先大概了解…

无线传感器网络:差错控制

文章目录Power controlAutomatic repeat request (ARQ)Stop and WaitGo Back NSelective RepeatForward error correction (FEC)Hybrid ARQ (HARQ)References严格意义来说&#xff0c;文章中提到的数据包都应为数据帧更为恰当&#xff0c;这里提出&#xff0c;希望不要给大家造…

3.9 拆解小红书爆文,流量密码原来是这些【玩赚小红书】

具体如何撰写1篇爆文&#xff0c;解决这一问题前&#xff0c;我们先把爆文四要素&#xff0c;选题、首图、标题和正文进行拆解&#xff0c;真正做到选题正确&#xff0c;用户坐着封面、标题、正文滑滑梯&#xff0c;站内留下点赞评&#xff0c;站外去拔草。 ​ 一、选题&#…

了解模型开发与部署,看这里!

11月24日下午15&#xff1a;00顶象第十期业务安全系列大讲堂系列课程《Xintell 模型平台 》正式开讲。 顶象人工智能专家&研发总监无常从模型平台的现状与需求出发&#xff0c;带大家了解了模型平台的开发环境与部署环境&#xff0c;并且就顶象的Xintell 模型平台 为大家做…

[附源码]Python计算机毕业设计DjangoON-FIT

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

1988-2020年分省、城市、农村基尼系数数据集(含计算程序和算法)

1、数据来源&#xff1a;《中国统计年鉴》 2、时间跨度&#xff1a;1988-2020 3、区域范围&#xff1a;全国所有省份 4、指标说明&#xff1a; 参照田为民的文章《中国基尼系数计算及其变动趋势分析》里基尼系数的计算方法 部分数据如下 二、基尼系数计算及相关经典文献 …

win10怎么把两个盘合成一个,win10怎么把分区合并

在Windows10系统中&#xff0c;为了更加充分地利用磁盘空间&#xff0c;其中合并分区是很常见的操作之一。由于很多用户都不知道win10怎么把两个盘合成一个&#xff0c;所以&#xff0c;为了防止人为误操作而导致的磁盘数据丢失&#xff0c;在本文中&#xff0c;易我小编在本文…