Vue输入内容/链接生成二维码

方式一:qrcode(无 icon 图标)

npm i qrcodejs2 --save
   
   

完整代码


   
   
  1. <template >
  2. <div class = "flex-box" >
  3. <div >qrcode(无 icon 图标) < /div >
  4. <div class = "qr-code" ref = "qrCodeUrl" > < /div >
  5. < /div >
  6. < /template >
  7. <script >
  8. import QRCode from 'qrcodejs2';
  9. export default {
  10. dat a() {
  11. return {};
  12. },
  13. methods: {
  14. / * 创建二维码 * /
  15. creatQrCode() {
  16. new QRCode(this.$refs.qrCodeUrl, {
  17. text: 'https://blog.csdn.net/AdminGuan', / / 二维码的内容
  18. width: 150,
  19. height: 150,
  20. colorDark: '#000',
  21. colorLight: '#fff',
  22. correctLevel: QRCode.CorrectLevel.H
  23. });
  24. }
  25. },
  26. mounted() {
  27. this.creatQrCode(); / / 创建二维码
  28. }
  29. };
  30. < /script >
  31. <style scoped >
  32. .flex-box {
  33. display: flex;
  34. align-items: center;
  35. justify-content: center;
  36. flex-direction: column;
  37. }
  38. .qr-code {
  39. padding: 10px;
  40. margin-top: 20px;
  41. background-color: #fff;
  42. border: 1px solid red;
  43. }
  44. < /style >

方式二:vue-qr(有 icon 图标)

官网地址:vue-qr - npm

npm install vue-qr --save
   
   

import 引入方式

import vueQr from 'vue-qr'; // vue2.0
   
   
import vueQr from 'vue-qr/src/packages/vue-qr.vue'; // vue3.0 (support vite)
   
   

完整代码


   
   
  1. <template >
  2. <div class = "flex-box" >
  3. <div >vue-qr(有 icon 图标) < /div >
  4. <vue-qr class = "qr-code" :logoSrc = "imageUrl" :text = "qrCodeUrl" : size = "150" / >
  5. < /div >
  6. < /template >
  7. <script >
  8. import vueQr from 'vue-qr'; / / vue 2.0
  9. / / import vueQr from 'vue-qr/src/packages/vue-qr.vue'; / / vue 3.0 (support vite)
  10. export default {
  11. components: { vueQr },
  12. dat a() {
  13. return {
  14. qrCodeUrl: 'https://blog.csdn.net/AdminGuan', / / 二维码的内容
  15. imageUrl: require( '../assets/default.jpg') / / icon路径
  16. };
  17. },
  18. methods: {}
  19. };
  20. < /script >
  21. <style scoped >
  22. .flex-box {
  23. display: flex;
  24. align-items: center;
  25. justify-content: center;
  26. flex-direction: column;
  27. }
  28. .qr-code {
  29. margin-top: 20px;
  30. background-color: #fff;
  31. border: 1px solid red;
  32. }
  33. < /style >

相关配置属性

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