vue项目中,js (javascript)生成二维码

vue项目中,js (javascript)生成二维码

1. 概述

1.1 引入二维码生成模块

    npm install qrcodejs2 --save

注意:此处安装qrcodejs2,安装依赖后可在main方法中进行全局引用设置,也可单独某个页面中进行引用设置。

1.2 引入使用

import QRCode from 'qrcodejs2';

备注:在main中设置全局可使用 Vue.prototype.$qrCode = QRCode; ,页面中调用可直接使用 this.$qrCode

1.3 页面展示与配置

1.3.1 html代码

<div id="qrCode" ref="qrCodeDiv"></div>

1.3.2 js代码

new QRCode(this.$refs.qrCodeDiv, {
          text: 'https://www.baidu.com',
          width: 200,
          height: 200,
          colorDark: "#333333", //二维码颜色
          colorLight: "#ffffff", //二维码背景色
          correctLevel: QRCode.CorrectLevel.L//容错率,L/M/H
        })

1.4 注意点

1.显示内容(text所指向内容)必须是UTF-8编码格式。

2.生成二维码js必须在 this.$nextTick(function(){调用})或setTimeout(() => { 调用 }, 100),是为了确保二维码容器DOM已经存在。

3.为了防止重复生成二维码,使用置空进行控制:document.getElementById("qrcode").innerHTML = "";

2. 实例

2.1 vue简单示例

<template>
  <div id="qrCode" ref="qrCodeDiv"></div>
</template>

<script>
  import QRCode from 'qrcodejs2';
  export default {
    name: "qrCode",
    data() {
      return {}
    },
    mounted: function () {
      this.$nextTick(function () {
        this.bindQRCode();
      })
    },
    methods: {
      bindQRCode: function () {
        new QRCode(this.$refs.qrCodeDiv, {
          text: 'https://www.baidu.com',
          width: 200,
          height: 200,
          colorDark: "#333333", //二维码颜色
          colorLight: "#ffffff", //二维码背景色
          correctLevel: QRCode.CorrectLevel.L//容错率,L/M/H
        })
      }
    }
  }
</script>

2.2 vue简单示例显示

在这里插入图片描述

在Spring Boot项目中,可以利用Spring MVC提供API服务,结合Vue.js前端框架,实现从数据库获取图片并生成二维码的功能。以下是简单的步骤: 1. **设置后端(Spring Boot)**: - 使用Spring Data JPA或其他数据访问技术(如JDBC)从MySQL、MongoDB等数据库中查询图片信息。 - 编写一个Controller API,比如`/api/qrcode/:imageId`,接收图片ID作为路径变量,查询对应图片并将其内容转换为Base64字符串。 ```java @GetMapping("/qrcode/{id}") public ResponseEntity<String> generateQRCode(@PathVariable("id") Long imageId) { // 从数据库获取图片 byte[] imageData = ...; // 从数据库查询到的图片字节数组 String base64Image = Base64Utils.encodeToString(imageData); // 使用第三方库如QrCode4j或Jsoup QR生成二维码图片 QrCodeGenerator generator = new DefaultQrCodeGenerator(); BufferedImage qrImage = generator.generateImage(base64Image); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(qrImage, "png", baos); byte[] qrBytes = baos.toByteArray(); return ResponseEntity.ok() .contentType(MediaType.IMAGE_PNG) .body(new ByteArrayResource(qrBytes)); } ``` 2. **前端(Vue.js)**: - 使用axios或Vuex管理HTTP请求,向上述Spring Boot API发送GET请求获取二维码。 - 可能需要引入一个前端二维码插件,例如vue-qrcode-reader,将接收到的二进制流渲染成二维码展示给用户。 ```javascript methods: { generateQRCode(imageId) { axios.get(`/api/qrcode/${imageId}`) .then(response => { this.showQRCode(response.data); // 将响应数据展示给用户 }) .catch(error => console.error('Error generating QR code:', error)); }, showQRCode(qrData) { // 使用vue-qrcode-reader插件显示二维码 this.$refs.qrcodeReader.decode(qrData); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值