Vue3 生成二维码(内容或跳转链接)
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
免费下载资源
·
以下也是借鉴大佬的代码, 这里只是整理出来, 方便以后自己使用
大佬的帖子 : 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 个月前
更多推荐
已为社区贡献3条内容
所有评论(0)