QRCode 生成器的完整 API 文档。
| 包名 | 环境 | 主要导出 | 说明 |
|---|---|---|---|
@veaba/qrcode-js |
浏览器 | QRCodeCore, QRErrorCorrectLevel |
纯 JavaScript,即时启动 |
@veaba/qrcode-wasm |
浏览器 | QRCodeCore, QRErrorCorrectLevel, init |
Rust WASM,性能最佳 |
@veaba/qrcode-node |
Node.js | QRCode, QRErrorCorrectLevel |
Node.js 环境 |
@veaba/qrcode-bun |
Bun | QRCode, QRErrorCorrectLevel |
Bun 运行时 |
@veaba/qrcode-rust |
Rust | QRCode, QRErrorCorrectLevel |
纯 Rust crate |
@veaba/qrcode-shared |
通用 | QRCodeCore, 工具函数 |
内部共享包 |
@veaba/qrcode-js 和 @veaba/qrcode-wasm 提供完全一致的 API:
所有包共用的纠错级别枚举:
所有 QRCode 类都支持以下方法:
| 方法 | 说明 | 参数 | 返回值 |
|---|---|---|---|
toSVG(size?) |
生成 SVG | size?: number |
string |
toStyledSVG(options?) |
样式化 SVG | options?: StyledSVGOptions |
string |
getModuleCount() |
获取模块数 | - | number |
isDark(row, col) |
判断模块颜色 | row: number, col: number |
boolean |
| 函数 | 参数 | 说明 |
|---|---|---|
generateRoundedQRCode(text, size?, radius?) |
string, number?, number? |
圆角二维码 |
generateQRCodeWithLogoArea(text, size?, logoRatio?) |
string, number?, number? |
带 Logo 区域 |
generateGradientQRCode(text, size?, color1?, color2?) |
string, number?, string?, string? |
渐变二维码 |
| 函数 | 参数 | 说明 |
|---|---|---|
generateWechatStyleQRCode(text, size?) |
string, number? |
微信绿色风格 |
generateDouyinStyleQRCode(text, size?) |
string, number? |
抖音黑底彩色风格 |
generateAlipayStyleQRCode(text, size?) |
string, number? |
支付宝蓝色风格 |
generateXiaohongshuStyleQRCode(text, size?) |
string, number? |
小红书红色风格 |
generateCyberpunkStyleQRCode(text, size?) |
string, number? |
赛博朋克霓虹风格 |
generateRetroStyleQRCode(text, size?) |
string, number? |
复古 sepia 风格 |
generateMinimalStyleQRCode(text, size?) |
string, number? |
极简风格 |
所有样式函数都有对应的缓存版本(函数名后加 Cached):
| 非缓存版本 | 缓存版本 |
|---|---|
generateRoundedQRCode |
generateRoundedQRCodeCached |
generateGradientQRCode |
generateGradientQRCodeCached |
generateWechatStyleQRCode |
generateWechatStyleQRCodeCached |
| ... | ... |
| 函数 | 参数 | 返回值 | 说明 |
|---|---|---|---|
generateBatchQRCodes(texts, options?) |
string[], QRCodeOptions? |
string[] |
批量生成 |
generateBatchQRCodesCached(texts, options?) |
string[], QRCodeOptions? |
string[] |
批量生成(缓存) |
generateQRCodeAsync(text, options?) |
string, QRCodeOptions? |
Promise<QRCodeResult> |
异步生成 |
generateBatchAsync(texts, options?) |
string[], QRCodeOptions? |
Promise<QRCodeResult[]> |
批量异步 |
| 函数 | 参数 | 返回值 | 说明 |
|---|---|---|---|
getCachedQRCode(text, correctLevel?) |
string, QRErrorCorrectLevel? |
QRCodeCore |
获取缓存的 QRCode |
clearQRCodeCache() |
- | void |
清空缓存 |
getCacheStats() |
- | { size, maxSize, keys } |
获取缓存统计 |
configureCache(options) |
CacheOptions |
void |
配置缓存 |
| 场景 | 推荐包 | 原因 |
|---|---|---|
| 现代浏览器,追求性能 | @veaba/qrcode-wasm |
性能最佳 |
| 需要兼容 IE11 | @veaba/qrcode-js |
纯 JS,兼容性好 |
| 对包大小敏感 | @veaba/qrcode-js |
体积更小 (~15KB) |
| Node.js 后端 | @veaba/qrcode-node |
Node 专用 API |
| Bun 运行时 | @veaba/qrcode-bun |
Bun 优化 |
| Rust 项目 | @veaba/qrcode-rust |
原生 Rust crate |