Skip to main content

二维码 QRCode

QRCode 是一个基于 qrcode 的 React 二维码组件,支持多种渲染方式(canvasimgsvg),支持自定义颜色、尺寸、容错等级,并可以在二维码中间嵌入图标。

📦 引入方式

import { QRCode } from './QRCode';

🧩 使用示例

📚 基础用法


📚 带图标的二维码

qrcode-icon

📚 SVG 渲染

📚 带背景色和前景色


🧩 属性说明

属性类型默认值描述
valuestring必填要编码的字符串
sizenumber160二维码像素尺寸
level'L' | 'M' | 'Q' | 'H''M'容错等级
bgColorstring'#fff'背景色
fgColorstring'#000'前景色
renderAs'canvas' | 'img' | 'svg''canvas'渲染方式
includeMarginbooleanfalse是否包含外部白边
classNamestring自定义 class
styleCSSProperties内联样式
altstring'qrcode'图片 alt
onLoad() => void渲染完成回调
iconstring | ReactNode二维码中间图标
iconSizenumbersize * 0.2图标大小(像素)

🧩 方法说明(通过 ref 调用)

const qrRef = useRef<QRCodeRef>(null);

<QRCode ref={qrRef} value="https://example.com" />;

// 获取 DataURL
const dataUrl = await qrRef.current?.toDataURL();

// 下载二维码
await qrRef.current?.download('my-qrcode.png');

✨ 注意事项

    1. 当使用 svg 渲染时,组件内部使用 Blob URL 临时生成 DataURL,并在卸载时释放。
    1. 图标大小会根据容错等级自动限制最大占比,防止二维码无法识别。
    1. 如果需要下载二维码,必须通过 ref 调用 download 方法。