QRCode 二维码
avue-qrcode 用于生成二维码,支持 Canvas、SVG 两种渲染方式,以及加载、过期和已扫码状态。
基础用法
效果预览可直接操作下方示例
正在加载示例…
自定义外观
可以设置二维码尺寸、前景色、背景色、容错级别和中心图标;带中心图标时建议使用 Q 或 H 容错级别。
效果预览可直接操作下方示例
正在加载示例…
状态控制
通过 status 展示加载、过期和已扫码状态。二维码过期后,用户点击刷新按钮会触发 refresh 事件,由业务侧重新获取内容或恢复状态。
效果预览可直接操作下方示例
正在加载示例…
导出二维码
通过组件 ref 调用 toDataURL,可分别下载 Canvas PNG 和 SVG 二维码。
效果预览可直接操作下方示例
正在加载示例…
Attributes
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|---|---|---|---|---|
| value | 二维码内容 | string | - | '' |
| type | 渲染方式 | string | canvas / svg | canvas |
| size | 二维码宽高,单位为 px | number | - | 160 |
| color | 前景色 | string | - | #000 |
| bgColor | 背景色 | string | - | transparent |
| bordered | 是否显示边框 | boolean | true / false | true |
| errorLevel | 容错级别 | string | L / M / Q / H | M |
| icon | 中央图标地址 | string | - | - |
| iconSize | 中央图标尺寸,最大为二维码尺寸的一半 | number | - | 40 |
| status | 状态遮罩 | string | active / loading / expired / scanned | active |
Events
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| refresh | status 为 expired 时,点击“刷新”触发 | - |
| error | 二维码内容无法生成时触发 | error |
| icon-error | Canvas 中央图标加载失败时触发 | - |
Methods
通过组件 ref 调用。
| 方法名 | 说明 | 参数 |
|---|---|---|
| toDataURL | 异步返回 Promise<string>;Canvas 默认 PNG,SVG 固定返回 SVG data URL | type = 'image/png', quality?: number |
| refresh | 触发 refresh 事件,由业务更新二维码内容 | 无 |
使用说明
修改 value 会重新生成二维码;切换状态只改变遮罩,不会自动请求新的二维码。扫码登录的轮询与状态更新由业务控制。
在组件挂载后 await ref.toDataURL() 并处理异常。该方法等待下一次 Vue 更新,不代表远程中心图标已完成加载;需要包含图标的导出应先确保图片可用,跨域图片还需服务端允许 Canvas 跨域使用。当前组件没有插槽。
