浏览器环境的 WASM 版本,基于 Rust 编译,提供优秀的 QRCode 生成性能。
WASM 需要异步初始化,确保在使用前完成初始化:
@veaba/qrcode-wasm 现在提供与 @veaba/qrcode-js 完全一致的 API,方便在两个包之间无缝切换:
如果需要更底层的控制,可以直接使用 WASM 原生 API:
如果需要像素数据用于 Canvas:
| 类/函数 | 说明 |
|---|---|
QRCodeCore |
核心 QRCode 类 |
QRErrorCorrectLevel |
纠错级别枚举 |
generateRoundedQRCode |
圆角二维码 |
generateGradientQRCode |
渐变二维码 |
generateWechatStyleQRCode |
微信风格 |
generateDouyinStyleQRCode |
抖音风格 |
generateBatchQRCodes |
批量生成 |
generateQRCodeAsync |
异步生成 |
getCachedQRCode |
获取缓存 |
clearQRCodeCache |
清空缓存 |
| 方法 | 说明 | 返回值 |
|---|---|---|
new() |
创建实例 | QRCodeWasm |
with_options(w, h, level) |
带选项创建 | QRCodeWasm |
make_code(text) |
生成 QRCode | void |
get_svg() |
获取 SVG | string |
get_module_count() |
获取模块数 | number |
get_modules_json() |
获取模块数据 | string |
is_dark(row, col) |
判断模块颜色 | boolean |
QRCodeGenerator 提升性能generateBatchQRCodes 比循环调用更快free() 释放内存(底层 API)| 特性 | @veaba/qrcode-wasm | @veaba/qrcode-js |
|---|---|---|
| 性能 | ⚡⚡⚡ 最快 | ⚡⚡ 快 |
| 包大小 | ~45KB | ~15KB |
| 初始化 | 需要异步 | 即时 |
| 兼容性 | 现代浏览器 | IE11+ |
| API | 统一 | 统一 |
选择 @veaba/qrcode-wasm:
选择 @veaba/qrcode-js:
从旧版本迁移到统一 API: