Skip to content
在新窗口打开实时预览

QrCode 二维码 ​

把文本或链接渲染为可扫描的 canvas 二维码,支持纠错级别、颜色定制、中心 Logo 与导出临时图片,适用于分享码、支付码等场景。

平台兼容性 ​

H5App微信小程序支付宝小程序
√√√√

基础用法 ​

vue
<snake-qr-code text="https://example.com" />

size 单位为 px(画布坐标基准),微信小程序内部按设备像素比放大保证清晰度;内容或尺寸变化时自动重绘。

中心 Logo 与样式 ​

vue
<snake-qr-code
    text="https://example.com"
    :size="220"
    :margin="10"
    logo="https://cdn.example.com/logo.png"
    color-dark="#1a1a1a"
    color-light="#ffffff"
/>
  • logo 尺寸默认取 size 的 20%,可用 logoWidth / logoHeight 覆盖;Logo 下方自动垫白底。
  • 带 Logo 时建议 correctLevel="H",中心被遮挡后仍可稳定扫描。
  • Logo 加载失败时触发 error 并保留完整矩阵,二维码不受影响。

导出图片 ​

海报存图等场景通过 ref 调用 exportImage(),拿到本地临时路径后再保存或上传。

ts
const qrCodeRef = ref();

async function saveQrCode() {
    const tempFilePath = await qrCodeRef.value?.exportImage();
    if (tempFilePath) uni.saveImageToPhotosAlbum({ filePath: tempFilePath });
}

API ​

Props ​

参数说明类型默认值
text二维码内容,UTF-8 文本或链接string''
size二维码边长(px)number200
correctLevel纠错级别'L' | 'M' | 'Q' | 'H'H
colorDark / colorLight深色模块 / 浅色背景颜色string#000000 / #FFFFFF
margin四周留白(px)number0
logo中心 Logo 图片地址,为空时不绘制string''
logoWidth / logoHeightLogo 宽高(px),0 时取 size 的 20% / 同宽number0
canvasIdCanvas 标识,同页多实例时建议显式指定string自动生成
customClass / customStyle自定义类名与样式string / style''

Events ​

事件名触发时机参数
click点击二维码事件对象
error内容编码或 Logo 绘制失败错误对象

Expose ​

方法说明
exportImage()等待当前绘制完成后导出二维码临时图片路径

类型定义 ​

ts
import type { QrCodeProps, QrCodeEmits, QrCodeExpose } from 'snake-ui';

主题变量 ​

二维码为画布渲染,不引入独立主题变量;配色通过 colorDark / colorLight 控制。

为 uni-app 商城与 CMS 场景设计