# Qrcode 二维码 
二维码生成组件,支持自定义颜色、图标、大小等配置,还支持二维码状态显示和长按保存功能。
# 平台差异说明
App(vue) | App(nvue) | H5 | 小程序 |
---|---|---|---|
√ | √ | √ | √ |
# 基本使用
直接引入即可使用,通过value
配置二维码内容:
<u-qrcode value="https://uview.d3u.cn/"></u-qrcode>
✅ Copy success!
# 自定义大小
通过size
属性设置二维码尺寸:
<u-qrcode value="https://uview.d3u.cn/" :size="200"></u-qrcode>
✅ Copy success!
# 自定义颜色
通过background
、foreground
、pdground
属性自定义二维码颜色:
<u-qrcode value="https://uview.d3u.cn/" background="#f0f0f0" foreground="#3eaf7c" pdground="#ff6b6b"> </u-qrcode>
✅ Copy success!
# 设置中心图标
通过icon
和iconSize
属性设置二维码中心的图标:
<u-qrcode value="https://uview.d3u.cn/" icon="https://uview.d3u.cn/common/logo.png" :iconSize="40"> </u-qrcode>
✅ Copy success!
# 设置容错级别
通过level
属性设置二维码的容错级别:
<u-qrcode value="https://uview.d3u.cn/" level="H"></u-qrcode>
✅ Copy success!
容错级别说明:
L
:低容错级别,可恢复约7%的数据M
:中等容错级别,可恢复约15%的数据Q
:较高容错级别,可恢复约25%的数据H
:高容错级别,可恢复约30%的数据
# 二维码状态
通过status
属性设置二维码状态,支持显示过期、已扫描等状态:
<template> <u-qrcode value="https://uview.d3u.cn/" :status="qrStatus" :expiredText="'二维码已过期,请重新获取'" :scannedText="'二维码已被扫描'" :refreshText="'点击重新生成'" @refresh="handleRefresh"> </u-qrcode> </template> <script> export default { data() { return { qrStatus: '' // 可选值:'expired' | 'scanned' | 'loading' } }, methods: { handleRefresh() { // 处理刷新逻辑 this.qrStatus = ''; } } } </script>
✅ Copy success!
# 长按保存
组件支持长按保存二维码图片,可通过fileType
和quality
属性控制导出质量:
<u-qrcode value="https://uview.d3u.cn/" fileType="png" :quality="0.8" @onLongpress="handleSave"> </u-qrcode>
✅ Copy success!
# 自定义插槽
组件提供了多个插槽用于自定义状态显示:
<u-qrcode value="https://uview.d3u.cn/" status="loading"> <template #loading> <view class="custom-loading">正在生成二维码...</view> </template> </u-qrcode> <u-qrcode value="https://uview.d3u.cn/" status="expired"> <template #expired> <view class="custom-expired"> <text>二维码已过期</text> <button @click="refreshQR">重新生成</button> </view> </template> </u-qrcode> <u-qrcode value="https://uview.d3u.cn/" status="scanned"> <template #scanned> <view class="custom-scanned"> <u-icon name="checkmark-circle-fill" size="24" color="success"></u-icon> <text>已成功扫描</text> </view> </template> </u-qrcode>
✅ Copy success!
# 此页面源代码地址
# API
# Props
参数 | 说明 | 类型 | 默认值 | 可选值 |
---|---|---|---|---|
value | 二维码内容 | String | Number | '' | - |
size | 二维码尺寸 | String | Number | 140 | - |
background | 背景色 | String | '#fff' | - |
foreground | 前景色 | String | '#000' | - |
pdground | 定位角点颜色 | String | '#000' | - |
level | 容错级别 | String | 'H' | L | M | Q | H |
icon | 二维码中心图标 | String | '' | - |
iconSize | 图标大小 | Number | 30 | - |
status | 二维码状态 | String | '' | expired | scanned | loading |
expiredText | 过期提示文字 | String | '二维码已过期' | - |
scannedText | 已扫码提示文字 | String | '已扫描' | - |
refreshText | 刷新按钮提示文字 | String | '点击刷新' | - |
mode 3.6.1 | 生成模式,图片模式不存在层级问题 | String | image | canvas |
# Event
事件名 | 说明 | 回调参数 | 版本 |
---|---|---|---|
change | 重新生成二维码时触发 | - | - |
refresh | 点击刷新按钮时触发 | - | - |
onLongpress | 长按保存二维码时触发 | tempFilePath: 临时文件路径 | - |
error | 生成或保存出错时触发 | error: 错误信息 | - |
# 插槽
插槽名 | 说明 | 版本 |
---|---|---|
loading | 自定义加载状态显示 | - |
expired | 自定义过期状态显示 | - |
scanned | 自定义已扫描状态显示 | - |
# 注意事项
图标要求:
icon
属性需要传入图片的完整URL地址,建议使用正方形图片以获得最佳效果。容错级别:容错级别越高,二维码越不容易被破坏,但二维码密度也会相应增加。建议根据实际使用场景选择合适的容错级别。
长按保存:长按保存功能在不同平台上的表现可能略有差异,建议在目标平台上进行充分测试。
状态管理:
status
属性用于控制二维码的显示状态,当设置为expired
或scanned
时,会显示相应的遮罩层。文件导出:
fileType
支持png
和jpg
格式,quality
参数仅在导出jpg
格式时有效。