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

大佬的帖子 : 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 生成二维码图片的参数 

GitHub 加速计划 / vu / vue
207.54 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
73486cb5 * chore: fix link broken Signed-off-by: snoppy <michaleli@foxmail.com> * Update packages/template-compiler/README.md [skip ci] --------- Signed-off-by: snoppy <michaleli@foxmail.com> Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 4 个月前
e428d891 Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐