随笔 - 755  文章 - 0 评论 - 33 阅读 - 135万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

一、概述

二维码又称 QR Code,QR 全称 Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的 Bar Code 条形码(只能标识数字)能存更多的信息,也能表示更多的数据类型。

二、二维码优势

1、信息容量大, 可以容纳多达 1850 个大写字母或 2710 个数字或 500 多个汉字。

2、应用范围广, 支持文字,声音,图片,指纹等等。

3、容错能力强, 即使图片出现部分破损也能使用。

4、成本低, 容易制作。

三、二维码容错级别

L 级(低) 7%的码字可以被恢复。

M 级(中) 的码字的 15%可以被恢复。

Q 级(四分)的码字的 25%可以被恢复。

H 级(高) 的码字的 30%可以被恢复。

四、二维码生成插件 qrious

qrious 是一款基于 HTML5 Canvas 的纯 JS 二维码生成插件。通过 qrious.js 可以快速生成各种二维码,你可以控制二维码的尺寸颜色,还可以将生成的二维码进行 Base64 编码。

qrious.js 二维码插件的可用配置参数如下:

五、使用qrcode.js生成二维码

新建一个vue项目

1、安装

cnpm install --save qrcodejs2

2、引入

import QRCode from 'qrcodejs2'  // 引入qrcode

3、使用

修改Home.vue如下所示:

复制代码
<template>
  <div>
    <div id="qrcode"></div>
  </div>
</template>

<script>
import QRCode from 'qrcodejs2'  // 引入qrcode
export default {
  name: 'Home',
  mounted() {
    this.qrcode()
  },
  methods: {
    qrcode(){
      let qrcode = new QRCode('qrcode',{
        width: 132,
        height: 132,
        text: 'https://www.baidu.com',
        colorDark: "#000",
        colorLight: "#fff"
      })
    }
  }
}
</script>
复制代码

注意:二维码的内容放在text中。

4、运行项目,访问http://localhost:8080/,效果如下:

 手机扫码即可跳转到百度首页。

六、如果报错:Cannot read property 'appendChild' of null

原因分析:div还没有生成,你就获取了div

解决办法:使用this.$nextTick()方法,该在下次 DOM 更新循环结束之后执行延迟回调。

 

点击“二维码查看”,弹出如下对话框

代码如下:

复制代码
<template>
  <el-dialog title="二维码查看" :visible.sync="dialogFormVisible" width="600px" @close="closeDialog">
    <div id="qrcode"/>
  </el-dialog>
</template>

<script>
import QRCode from 'qrcodejs2'  // 引入qrcode
export default {
  name: 'QrcodeDialog',
  data() {
    return {
      dialogFormVisible: false,
    };
  },
  methods: {
    openDialog() {this.dialogFormVisible = true
      this.$nextTick(() => {
        this.qrcodeGenerate()
      })
    },
    qrcodeGenerate() {
      let qrcode = new QRCode('qrcode', {
        width: 132,
        height: 132,
        text: '你好',
        colorDark: '#000',
        colorLight: '#fff'
      })
    },
  closeDialog() {
    document.getElementById('qrcode').innerHTML = "";  
  }
}
}
</script>
复制代码

关闭对话框时要清空二维码,否则下次打开对话框就会多一个

document.getElementById("qrcode").innerHTML = "";

 



感谢您的阅读,如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮。本文欢迎各位转载,但是转载文章之后必须在文章页面中给出作者和原文连接
posted on   周文豪  阅读(614)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-03-01 spring cloud组件之Ribbon负载均衡:从地址列表中使用负载均衡算法(默认是轮询)获取地址进行服务调用
点击右上角即可分享
微信分享提示