vuejs如何利用qrcode
生成二维码,下面编程教程网小编给大家详细介绍一下具体代码!
安装脚手架
npm i qrcode -S
npm install --save @types/qrcode
二维码组件介绍
<template>
<canvas id="canvas" ref="canvas" :width="width" :height="height"></canvas>
</template>
<script setup>
import QRCode from "qrcode";
import { onMounted, ref } from "vue";
const props = defineProps({
//二维码存储内容
qrUrl: {
type: String,
default: "Hello World"
},
// canvas width
width: {
type: Number,
default: 400
},
// canvas height
height: {
type: Number,
default: 400
},
// 二维码尺寸(正方形 长宽相同)
qrSize: {
type: Number,
default: 360
},
// 二维码底部文字
qrText: {
type: String,
default: "Hello World"
},
//底部说明文字字号
qrTextSize: {
type: Number,
default: 24
}
});
const qrCodeOption = {
errorCorrectionLevel: "H",
width: props.qrSize,
version: 7
};
const canvas = ref<HTMLCanvasElement>();
/**
* @argument qrUrl 二维码内容
* @argument qrSize 二维码大小
* @argument qrText 二维码中间显示文字
* @argument qrTextSize 二维码中间显示文字大小(默认16px)
*/
const handleQrcode = () => {
let dom = canvas.value as HTMLCanvasElement;
QRCode.toDataURL(props.qrUrl, qrCodeOption)
.then((url: string) => {
// 画二维码里的logo// 在canvas里进行拼接
const ctx = dom.getContext("2d") as CanvasRenderingContext2D;
const image = new Image();
image.src = url;
setTimeout(() => {
ctx.drawImage(image, (props.width - props.qrSize) / 2, 0, props.qrSize, props.qrSize);
if (props.qrText) {
//设置字体
ctx.font = "bold " + props.qrTextSize + "px Arial";
let tw = ctx.measureText(props.qrText).width; // 文字真实宽度
let ftop = props.qrSize - props.qrTextSize; // 根据字体大小计算文字top
let fleft = (props.width - tw) / 2; // 根据字体大小计算文字left
ctx.fillStyle = "#fff";
ctx.textBaseline = "top"; //设置绘制文本时的文本基线。
ctx.fillStyle = "#333";
ctx.fillText(props.qrText, fleft, ftop);
}
}, 0);
})
.catch((err: Error) => {
console.error(err);
});
};
onMounted(() => {
handleQrcode();
});
</script>
二维码下载
const savePic = () => {
let dom = canvas.value as HTMLCanvasElement;
let a = document.createElement("a");
//将二维码面板处理为图片
a.href = dom.toDataURL("image/png", 0.5);
a.download = props.qrUrl + ".png";
a.click();
};
defineExpose({ savePic });
以上是编程学习网小编为您介绍的“vuejs如何利用qrcode生成二维码”的全面内容,想了解更多关于 vuejs 内容,请继续关注编程基础学习网。
沃梦达教程
本文标题为:vuejs如何利用qrcode生成二维码
基础教程推荐
猜你喜欢
- JavaScript 中创建私有成员 2023-08-12
- Javascript 模拟点击事件(点击链接与html点击) 兼容IE/Firefox 2024-02-06
- 关于Ajax技术中servlet末尾的输出流 2023-01-21
- html标签target轻松实现点击链接在扩展屏上显示 2024-12-09
- CSS+HTML 实现顶部导航栏功能 2024-01-20
- ajax从JSP传递对象数组到后台的方法 2023-02-15
- new Vue() vs createApp() 2023-10-08
- 如何使用Java,AJAX使用Rest Web Services从MySQL数据库检索数据并将其放置在HTML表单中 2023-10-27
- 微信小程序网络数据请求的实现详解 2022-08-30
- 一款专为移动端打造的UI组件库——VUX中文文档官网介绍 2025-01-15