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

6,232次阅读
没有评论

共计 3029 个字符,预计需要花费 8 分钟才能阅读完成。

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 编码的内容
correctLevel Correct 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
logoMargin LOGO 标识周围的空白边框, 默认为 0
logoBackgroundColor 背景色, 需要设置 logo margin(经过测试证明无效
logoCornerRadius LOGO 标识及其边框的圆角半径, 默认为 0
whiteMargin 若设为 true, 背景图外将绘制白色边框
dotScale 数据区域点缩小比例 (0
autoColor 背景图的主要颜色将作为实点的颜色, 即 colorDark, 默认 true
binarize 图像将被二值化处理, 未指定阈值则使用默认值
binarizeThreshold 二值化处理的阈值(0
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 项目地址

原文地址: Vue – 详细介绍 vue-qr 在线生成二维码组件(Vue2 & Vue3)

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-11-03发表,共计3029字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)