当前位置: 首页 > news >正文

vue3-ts-qrcode :安装及使用记录 / 配置项 / 效果展示

一、安装 qrcode 库

pnpm install qrcode

二、解决类型声明问题

pnpm install --save-dev @types/qrcode

三、集成组件

<template><div><canvas ref="canvasRef"></canvas><!-- 或者使用 img 标签 --><!-- <img :src="qrCodeImage" alt="QR Code" /> --></div>
</template><script setup lang="ts">
import { ref, onMounted } from 'vue';
import QRCode from 'qrcode';const canvasRef = ref<HTMLCanvasElement | null>(null);
// 如果使用 img 标签,可以这样定义
// const qrCodeImage = ref('');onMounted(() => {if (canvasRef.value) {QRCode.toCanvas(canvasRef.value,'https://www.example.com', // 要生成二维码的内容{width: 200, // 二维码宽度},(error) => {if (error) {console.error('生成二维码失败:', error);} else {console.log('二维码生成成功');}});}// 如果使用 img 标签,可以这样生成 data URL// QRCode.toDataURL(//   'https://www.example.com',//   {//     width: 200,//   },//   (error, url) => {//     if (error) {//       console.error('生成二维码失败:', error);//     } else {//       qrCodeImage.value = url;//     }//   }// );
});
</script>

四、页面使用

<template><m-qrcode/>
</template><script setup lang="ts">// 事件 暂无需要// 数据
const data = ref({qrcode: 'hello'
})
// 配置/模板
const config: any = {type: 'qrcode',label: '二维码', // item的名字--用于展示field: 'qrcode', // 字段--用于提交数据style: {// 样式--具体的样式width: '200px', // 宽度--具体的样式height: '200px' // 高度--具体的样式},rules: [], // 校验规则attrs: {// 属性--具体的属性show: true, // 是否显示itemrequired: true, // 是否必填placeholder: '', // 占位符disabled: false, // 是否禁用}
}
</script><style scoped>
</style>

五、展示效果

六、qrcode 配置选项

配置选项类型默认值说明
versionnumber自动选择二维码的版本(尺寸),范围从 1 到 40。如果不指定,库会自动选择合适的版本。
errorCorrectionLevelstring'L'纠错级别,可选值有:
'L':7% 的字码可被修复。
'M':15% 的字码可被修复。
'Q':25% 的字码可被修复。
'H':30% 的字码可被修复。
typestring'canvas'toCanvas)或 'image/png'toDataURL生成的二维码类型,对于 toCanvas 通常是 'canvas',对于 toDataURL 通常是 'image/png',也可以是其他图像格式如 'image/jpeg'
widthnumber自动计算二维码的宽度(像素)。如果不指定,库会根据内容和版本自动计算。
heightnumber自动计算二维码的高度(像素)。如果不指定,库会根据内容和版本自动计算。
color.darkstring'#000000'二维码模块(黑色部分)的颜色,可以是十六进制颜色码、RGB 或其他 CSS 颜色值。
color.lightstring'#ffffff'二维码背景(白色部分)的颜色,可以是十六进制颜色码、RGB 或其他 CSS 颜色值。
marginnumber4二维码周围的空白边距(模块数量的倍数)。
scalenumber1缩放比例,用于调整二维码的尺寸。
qualitynumber0.925当 type 为 'image/jpeg' 时,用于设置 JPEG 图像的质量,范围从 0 到 1。
import QRCode from 'qrcode';const options = {version: 5,errorCorrectionLevel: 'H',type: 'image/png',width: 300,color: {dark: '#000000',light: '#ffffff',},margin: 2,
};QRCode.toDataURL('hello', options, (error, url) => {if (error) {console.error('生成二维码失败:', error);} else {console.log('二维码生成成功:', url);// 可以将 url 设置为 img 标签的 src 属性}
});

七、欢迎交流指正

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

相关文章:

  • 编辑器及脚本案例
  • Android图形系统框架解析
  • 探秘阿里云EBS存储:云计算的存储基石
  • Qt蓝图式技能编辑器状态机模块设计与实现
  • day09——Java基础项目(ATM系统)
  • ARINC653系统架构
  • Stroke-based Cyclic Amplifier (SbCA方法):实现图像任意尺度超清放大
  • 聊聊GPIO 工作模式
  • 英飞凌推出ASIL-B等级并具唤醒功能的第三代3D霍尔传感器TLE493D-x3系列
  • 服务器如何从http升级到https(nginx)
  • day02-Docker
  • B站 XMCVE Pwn入门课程学习笔记(4)(不断更新)
  • 计算机网络:(四)物理层的基本概念,数据通信的基础知识,物理层下面的传输媒体
  • 不同系统修改 Docker Desktop 存储路径(从C盘修改到D盘)
  • FPGA基础 -- Verilog 行为级建模之过程性结构
  • 【深度学习】卷积神经网络(CNN):计算机视觉的革命性引擎
  • 从0开始学习R语言--Day27--空间自相关
  • Vue.js 按键修饰符详解:提升键盘事件处理效率
  • Vue添加图片作为水印
  • 24.分页查询
  • 26.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--角色权限管理
  • Python Peewee库连接和操作MySQL数据库
  • CANFD加速是什么?和CANFD有什么区别?
  • redux
  • chili3d笔记18 出三视图调整
  • 从零接入高德路径规划2.0:实现精准物流距离计算实战
  • 侧信道攻击的评估指标
  • SpringBoot电脑商城项目--新增收获地址
  • springboot入门之路(一)
  • 【AI Study】第四天,Pandas(3)- 数据处理进阶