在 vue 中使用 Canvas 绘制二维码可分为以下几个步骤:
-
安装 库:
npm install qrcode --save
-
在 Vue 组件中导入 qrcode 库
javaimport QRCode from 'qrcode';
-
创建 Canvas 元素
-
<canvas ref="canvas"></canvas>
在 Vue 组件的生命周期钩子函数 mounted 中编写 Canvas 绘制二维码的代码
javascript
mounted() {
const canvas = this.$refs.canvas;
const ctx = canvas.getContext('2d');
QRCode.toDataURL('https://www.google.com', { errorCorrectionLevel: 'M' }, function(err, url) {
if (err) throw err;
const img = new Image();
img.onload = function() {
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
};
img.src = url;
});
},
在上面的代码中,我们使用 QRCode 库的 toDataURL 方法生成二维码图片的 base64 编码,并将其转换为 Image 对象,最后在 Canvas 上绘制
6. 样式要有吧
-
canvas {
width: 200px;
height: 200px;
border: 1px solid #ccc;
}
-
完整的 Vue 组件代码 注意 注意 你们的二维码 码 和我不一样 记得转一下 再弄
javascript
<template>
<div>
<canvas ref="canvas"></canvas>
</div>
</template>
<script>
import QRCode from 'qrcode';
export default {
mounted() {
const canvas = this.$refs.canvas;
const ctx = canvas.getContext('2d');
QRCode.toDataURL('https://www.google.com', { errorCorrectionLevel: 'M' }, function(err, url) {
if (err) throw err;
const img = new Image();
img.onload = function() {
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
};
img.src = url;
});
}
};
</script>
<style>
canvas {
width: 200px;
height: 200px;
border: 1px solid #ccc;
}
</style>