当前位置: 首页 > article >正文

Vue - 详细介绍vue-qr在线生成二维码组件(Vue2 Vue3)

Vue - 详细介绍vue-qr在线生成二维码组件(Vue2 & Vue3)

在对于二维码生成中有许多组件,下面介绍关于自定义比较高的vue-qr组件,能自定义设置背景颜色、背景图片、背景Gif图、实点和空白区的颜色、中心Logo的图片和边距。

一、安装

npm install vue-qr --save

二、组件内引用VueQr

# Vue2 
import VueQr from "vue-qr";
export default {
  components: {
    VueQr
  },
};

# Vue3
import vueQr from 'vue-qr/src/packages/vue-qr.vue'

三、如何使用

1.创建简易二维码:
在这里插入图片描述

<template>
    <vue-qr
      text="https://www.baidu.com/"
      :size="200"
    ></vue-qr>
</template>

2.修改实点颜色(colorDark)和空白区颜色(colorLight):

注意:空白区颜色如果高于实点颜色,则实点颜色和空白区颜色互换!

在这里插入图片描述

<template>
    <vue-qr
      colorDark="#EE6779"  
      colorLight="#F5E1D9" 
      text="https://www.baidu.com/"
      :size="200"
    ></vue-qr>
</template>

3.添加背景图片:

注意:出现实点挡住背景无法显示完全,可通过调整dotScale大小和correctLevel来让背景图显示完全!

在这里插入图片描述

<template>
    <vue-qr 
    :size="200" 
    :bgSrc="image" 
    :correctLevel="2"  
    :dotScale="0.5" 
    text="https://blog.csdn.net/miaomiaowins">
    </vue-qr>
</template>

# Vue2
<script>
import VueQr from "vue-qr";
export default {
  data() {
    return {
      image: require("../assets/bg.jpg"),
    };
  },
  components: {
    VueQr,
  },
};
</script>

# Vue3
<script setup>
import vueQr from 'vue-qr/src/packages/vue-qr.vue'
const image = new URL('./assets/bg.jpg', import.meta.url).href
</script>

4.添加GIF背景图片:

注意:添加Gif背景会影响性能,导致图片生成时间增加

在这里插入图片描述

<template>
    <vue-qr 
    :size="200" 
    :gifBgSrc="gifImage" 
    :correctLevel="2"  
    :dotScale="0.5" 
    text="https://blog.csdn.net/miaomiaowins">
    </vue-qr>
</template>

# Vue2
<script>
import VueQr from "vue-qr";
export default {
  data() {
    return {
      gifImage: require("../assets/bg.gif"),
    };
  },
  components: {
    VueQr,
  },
};
</script>

# Vue3
<script setup>
import vueQr from 'vue-qr/src/packages/vue-qr.vue'
const gifImage= new URL('./assets/bg.gif', import.meta.url).href
</script>

5.放置中心Logo图标:
在这里插入图片描述

<template>
    <vue-qr 
      :bgSrc="image"
      :dotScale="0.5"
      :correctLevel="2"
      text="Hello world!"
      :logoSrc="logoSrc"
      :size="200">
    </vue-qr>
</template>

# Vue2
<script>
import VueQr from "vue-qr";
export default {
  data() {
    return {
      image: require("../assets/bg.jpg"),
      logoSrc: require("../assets/logo_1.png"),
    };
  },
  components: {
    VueQr,
  },
};
</script>

# Vue3
<script setup>
import vueQr from 'vue-qr/src/packages/vue-qr.vue'
const image = new URL('./assets/bg.jpg', import.meta.url).href
const logoSrc = new URL('./assets/logo_1.png', import.meta.url).href
</script>

四、属性介绍

名称说明
text编码的内容
correctLevelCorrect Level 0-3 容错级别 0-3
size二维码尺寸, 长宽一致, 包含外边距
margin二维码图像的外边距, 默认 20px
colorDark实点的颜色
colorLight空白区的颜色
components阅读 ComponentOptions 了解更多信息。
bgSrc欲嵌入的背景图地址
gifBgSrc欲嵌入的背景图 gif 地址,设置后普通的背景图将失效。设置此选项会影响性能
backgroundColor背景色
backgroundDimming叠加在背景图上的颜色, 在解码有难度的时有一定帮助
logoSrc嵌入至二维码中心的 LOGO 地址
logoScale用于计算 LOGO 大小的值, 过大将导致解码失败, LOGO 尺寸计算公式 logoScale*(size-2*margin), 默认 0.2
logoMarginLOGO 标识周围的空白边框, 默认为0
logoBackgroundColor背景色,需要设置 logo margin(经过测试证明无效
logoCornerRadiusLOGO 标识及其边框的圆角半径, 默认为0
whiteMargin若设为 true, 背景图外将绘制白色边框
dotScale数据区域点缩小比例 (0 < scale < 1.0),默认为1
autoColor背景图的主要颜色将作为实点的颜色, 即 colorDark,默认 true
binarize图像将被二值化处理, 未指定阈值则使用默认值
binarizeThreshold二值化处理的阈值(0 < threshold < 255) ,默认值128
callback生成的二维码 Data URI 可以在回调中取得,第一个参数为二维码 data URL, 第二个参数为 props 传过来的 qid(因为二维码生成是异步的,所以加个 id 用于排序)
bindElement指定是否需要自动将生成的二维码绑定到HTML上, 默认是true

callback方法:

<vue-qr text="Hello world!" :callback="test" qid="testid"></vue-qr>
export default {
    methods:{
        test(dataUrl,id){
            console.log(dataUrl, id)
        }
    }
}

以上是对vue-qr组件的详细介绍,针对于设置中心点logo背景颜色失效的问题,猜测应该是组件版本问题,对于高自定义的在线生成二维码组件有兴趣的小伙伴们,可以尝试一下,对于需要用到动态二维码生成扫描的项目是有一些帮助的!

参考链接:
Awesome-qr.js:Awesome-qr.js
vue-qr:vue-qr项目地址


http://www.kler.cn/news/303497.html

相关文章:

  • 为 WebSocket 配置 Nginx 反向代理来支持 Uvicorn 的最佳实践
  • 动手学习RAG: moka-ai/m3e 模型微调deepspeed与对比学习
  • 苍穹外卖随记(一)
  • YOLOV8实现小目标检测
  • Qt自动打开文件夹并高亮文件
  • CI/CD持续集成和持续部署以及相关软件的使用
  • Docker日志管理之Filebeat+ELK日志管理
  • (不用互三)解密AI创作:提升Prompt提示词的提问技巧
  • VS Code 中提升编程效率的功能及使用方法
  • 大模型-模型架构-详细配置
  • 雷电9模拟器安装magisk和lsposed
  • 负载均衡:从理论到实践 ---day04
  • http连接与ssh连接的区别
  • 华为HCIA、HCIP和HCIE认证考试明细
  • 实现一个点缓慢到达另一个点
  • 【网络】传输层协议UDP
  • Kubernetes 集群管理
  • 音视频入门基础:AAC专题(1)——AAC官方文档下载
  • 【JVM】判断对象能否回收的两种方法:引用计数算法,可达性分析算法
  • 神经网络多层感知器异或问题求解-学习篇
  • mysql数据库如何开启binlog日志
  • cesium.js 入门到精通(7)
  • 修改centos7系统语言en_US.UTF-8为中文zh_CN.UTF-8
  • 高防服务器的优势与劣势分析
  • 【LLM:Fan】
  • 踩坑记:Poco库,MySql,解析大文本的bug
  • 递归、排序、二分查找(C语言实现)
  • mybatis与concat实现模糊查询、mybatis中模糊查询concat传入参数为空时的解决方法
  • nacos安装使用调优及面试题分享
  • Apple发布会都有哪些亮点?如何在苹果手机和电脑上录制屏幕?