Vue3 生成二维码(内容或跳转链接)

以下也是借鉴大佬的代码, 这里只是整理出来, 方便以后自己使用

大佬的帖子 : vue3中使用qrcodejs2-fix插件生成二维码_G_ing的博客-CSDN博客

其他人的帖子不是报错就是繁琐胡扯, 有人连canvas都结合起来用, 还封装成组件, 写的乱七八糟, 明明这么简单几句代码就实现的

所以看到这个帖子, 就别去搜索其他人的了, 保证管用

使用的依赖 qrcodejs2-fix

npm install qrcodejs2-fix

DOM处

<div id="qrCodeBox"></div>

页面中引入

import { onMounted, ref, reactive, nextTick } from 'vue';
// 页面中引入
import QRCode from 'qrcodejs2-fix';

onMounted(() => {
    // 生成二维码
    getQrCode();
});

// 生成方法
const getQrCode = () => {
    // DOM 都加载完毕再执行
    nextTick(() => {
        document.getElementById('qrCodeBox').innerHTML = '';
        new QRCode(document.getElementById('qrCodeBox'), {
            text: '呱呱', // 扫码后显示的内容, 如果页面链接, 扫码后会直接跳转到链接
            width: 100, //二维码宽
            height: 100, //二维码高
        });
    });
};

如果扫码内容是需要接口返回的, 建议这样写

import { onUnmounted, onMounted, ref, reactive, watchEffect } from 'vue';

// 进入页面只执行一次的监听函数
watchEffect(() => {
    // 当接口返回了数据, 再生成二维码
    if (接口返回的数据存在) getQrCode();
})

// 生成二维码
// 这里也不用包裹nexttick, 因为接口返参已经有延迟了
const getQrCode = () => {
    document.getElementById('qrCodeBox').innerHTML = '';
    new QRCode(document.getElementById('qrCodeBox'), {
        text: `${接口返回的数据} ${接口返回的数据}`,
        width: 100, //二维码宽
        height: 100, //二维码高
    });
};

使用原理说明

new QRCode(element, parameter); 
//element 第一个参数为二维码容器,即页面元素
//parameter 生成二维码图片的参数 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值