普歌-前端js/vue生成二维码的两种方式

本文介绍了在前端使用JavaScript和Vue生成二维码的两种方式。第一种是利用QRCode.js库,无依赖,可在Vue中直接使用;第二种是使用vue-qr组件,支持自定义背景、Logo等。详细代码示例和参数说明帮助开发者快速实现二维码生成功能。
摘要由CSDN通过智能技术生成

普歌-前端js/vue生成二维码的两种方式

需要生成二维码的场景比较多,支付、个人信息读取等等,今天就说说两种方式,一种单纯的生成二维码,另一种中间可以放logo

1. 方式一:QRCode.js

  • QRCode.js是用于制作QRCode的JavaScript库。QRCode.js通过HTML5 Canvas和DOM中的表格标签支持跨浏览器。QRCode.js没有依赖关系。
  • 在npm的使用方法:https://www.npmjs.com/package/qrcodejs2
  • 我进行了总结使用方法:
  1. 在js中的使用
 <div id="qrcode"></div>
 
 <script type="text/javascript">
      new QRCode(document.getElementById("qrcode"), "这里是你想要生成的内容");
</script>

还可以这样使用

var qrcode = new QRCode("test", {
 text: "这里是你想要生成的内容",
 width: 128,
 height: 128,
 colorDark : "#000000",
 colorLight : "#ffffff",
 correctLevel : QRCode.CorrectLevel.H
});
  1. 内置的方法
  • qrcode.clear(); // 清除二维码
  • qrcode.makeCode("生成的内容"); //生成其他的二维码
  1. 在vue中的使用
<template>
<div class="area">
 <div class="qrcode" ref="qrCodeUrl"></div>
</div>
</template>

<script>
import QRCode from "qrcodejs2";
export default {
data() {
 return {
 };
},
mounted() {
 this.creatQrCode();
},
methods: {
 creatQrCode() {
   var qrcode = new QRCode(this.$refs.qrCodeUrl, {
     text: "李海金看你爸爸我透你妈", // 需要转换为二维码的内容
     width: 100,
     height: 100,
     colorDark: "#000000",
     colorLight: "#ffffff",
     correctLevel: QRCode.CorrectLevel.H
   });
 }
}
};
</script>

<style lang="less">
.area {
background: #000;
}
</style>

果然没有白边的二维码不是一个合格的二维码

生成的二维码
给它加个样式,记得不要加scoped,不用css编译

<style lang="less">
.home {
  padding: 20px;
  background: #000;
}
.qrcode {
  display: inline-block;
  img {
    width: 140px;
    height:140px;
    background-color: #fff; //设置白色背景色
    padding: 6px; // 利用padding的特性,挤出白边
    box-sizing: border-box;
  }
}
</style>

加了白边

2. 方式二:vue-qr,组件形式

官方:https://www.npmjs.com/package/vue-qr

1. 第一步安装
npm install vue-qr --save
2. 第二步引入到vue文件中
import VueQr from 'vue-qr'
 
new Vue({
    components: {VueQr}
})
3.第三步使用
<template>
  <div class="home">
  <!--关于本地url路径需要用require -->
    <vue-qr
      text="Hello world!"
      :whiteMargin="true"
      :logoSrc="imgUrl"
      :size="200"
      colorDark="#ff6700"
    ></vue-qr>
      </div>
</template>

<script>
import Swiper from "swiper";
import $ from "jquery";
import QRCode from "qrcodejs2";
import VueQr from "vue-qr";
export default {
  components: {
    VueQr
  },
  data() {
    return {
      imgUrl: require("../assets/logo.png")
    };
  },
};
</script>

效果

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

结束了,看看孩子的其他文章呗

更多推荐:wantLG的《普歌-uniapp安卓打包apk发布软件商城


  • 作者:wantLG
  • 本文源自:wantLG的《普歌-前端js/vue生成二维码的两种方式
  • 本文版权归作者和CSDN共有,欢迎转载,且在文章页面明显位置给出原文链接,未经作者同意必须保留此段声明,否则保留追究法律责任的权利。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wantLG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值