# Qrcode 二维码 3.6.0

二维码生成组件,支持自定义颜色、图标、大小等配置,还支持二维码状态显示和长按保存功能。

# 平台差异说明

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!

# 自定义颜色

通过backgroundforegroundpdground属性自定义二维码颜色:

<u-qrcode 
    value="https://uview.d3u.cn/" 
    background="#f0f0f0"
    foreground="#3eaf7c"
    pdground="#ff6b6b">
</u-qrcode>
✅ Copy success!

# 设置中心图标

通过iconiconSize属性设置二维码中心的图标:

<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!

# 长按保存

组件支持长按保存二维码图片,可通过fileTypequality属性控制导出质量:

<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!

# 此页面源代码地址

页面源码地址


 github  gitee

# 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 自定义已扫描状态显示 -

# 注意事项

  1. 图标要求icon属性需要传入图片的完整URL地址,建议使用正方形图片以获得最佳效果。

  2. 容错级别:容错级别越高,二维码越不容易被破坏,但二维码密度也会相应增加。建议根据实际使用场景选择合适的容错级别。

  3. 长按保存:长按保存功能在不同平台上的表现可能略有差异,建议在目标平台上进行充分测试。

  4. 状态管理status属性用于控制二维码的显示状态,当设置为expiredscanned时,会显示相应的遮罩层。

  5. 文件导出fileType支持pngjpg格式,quality参数仅在导出jpg格式时有效。

上次更新时间: 2025/9/20 08:47:51
🌟 真诚邀请 🌟
如果你觉得本项目对你有帮助
欢迎访问我们的Gitee/Github 仓库为我们点个 Star!
×