# QR Code
> Easy to use QR code component, bases on [node-qrcode](https://github.com/soldair/node-qrcode).
## Basic usage
```html
<template>
<vue-qrcode value="Hello, World!"></vue-qrcode>
<vue-qrcode value="https://fengyuanchen.github.io/vue-qrcode"></vue-qrcode>
</template>
```
## Add options
```html
<template>
<vue-qrcode value="https://fengyuanchen.github.io/vue-qrcode"></vue-qrcode>
<vue-qrcode
value="https://fengyuanchen.github.io/vue-qrcode"
:options="{
color: {
dark: '#0074d9',
light: '#7fdbff',
},
}"
></vue-qrcode>
</template>
```
## Custom tag
```html
<template>
<vue-qrcode value="https://fengyuanchen.github.io/vue-qrcode" tag="img"></vue-qrcode>
<vue-qrcode value="https://fengyuanchen.github.io/vue-qrcode" tag="svg" :options="{ width: 148 }"></vue-qrcode>
</template>
```
## Add a logo
### Covering
```html
<template>
<figure class="qrcode">
<vue-qrcode
value="https://github.com/fengyuanchen"
tag="svg"
:options="{
errorCorrectionLevel: 'Q',
width: 200,
}"
></vue-qrcode>
<img
class="qrcode__image"
src="https://avatars.githubusercontent.com/u/3456749"
alt="Chen Fengyuan"
/>
</figure>
</template>
<style scoped>
.qrcode {
display: inline-block;
font-size: 0;
margin-bottom: 0;
position: relative;
}
.qrcode__image {
background-color: #fff;
border: 0.25rem solid #fff;
border-radius: 0.25rem;
box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.25);
height: 15%;
left: 50%;
overflow: hidden;
position: absolute;
top: 50%;
transform: translate(-50%, -50%);
width: 15%;
}
</style>
```
### Drawing
> Only available to canvas elements.
```html
<template>
<vue-qrcode
value="https://github.com/fengyuanchen"
:options="{
errorCorrectionLevel: 'Q',
width: 200,
}"
@ready="onReady"
></vue-qrcode>
</template>
<script>
export default {
methods: {
onReady(canvas) {
const context = canvas.getContext('2d');
const image = new Image();
image.src = 'https://avatars.githubusercontent.com/u/3456749';
image.crossorigin = 'anonymous';
image.onload = () => {
const coverage = 0.15;
const width = Math.round(canvas.width * coverage);
const x = (canvas.width - width) / 2;
this.drawImage(context, image, x, x, width, width);
};
},
drawImage(context, image, x, y, width, height, radius = 4) {
context.shadowOffsetX = 0;
context.shadowOffsetY = 2;
context.shadowBlur = 4;
context.shadowColor = '#00000040';
context.lineWidth = 8;
context.beginPath();
context.moveTo(x + radius, y);
context.arcTo(x + width, y, x + width, y + height, radius);
context.arcTo(x + width, y + height, x, y + height, radius);
context.arcTo(x, y + height, x, y, radius);
context.arcTo(x, y, x + width, y, radius);
context.closePath();
context.strokeStyle = '#fff';
context.stroke();
context.clip();
context.fillStyle = '#fff';
context.fillRect(x, x, width, height);
context.drawImage(image, x, x, width, height);
},
},
}
</script>
```
## Props
| Name | Type | Default | Options | Description |
| --- | --- | --- | --- | --- |
| value | `string` | - | - | The value of the QR code. |
| options | `Object` | - | [Checkout the available options](https://github.com/soldair/node-qrcode#qr-code-options) | The options for the QR code generator. |
| tag | `string` | `"canvas"` | canvas, img, svg | The tag of the QR code. |
## Events
| Name | Parameters | Description |
| --- | --- | --- |
| ready | `($el)` | Fire when the QR code is generated. |
徐浪老师
- 粉丝: 8522
- 资源: 1万+
最新资源
- 数据架构基础知识(35页).pptx
- 数字孪生智慧城市PPT(21页).pptx
- 用户画像解说(16页 ).pptx
- 信捷XDH系列PLC追剪 飞剪 电子凸轮程序模板 包含了定长追剪和飞剪模式 定标飞剪 追剪模式 函数功能块无jia密,是学习信捷追 飞剪的经典模板 适合参考借鉴 包含:PLC程序+信捷触摸屏HMI+软
- 电影票房相关的数据,包括日期、上座率、场均人次、综合票价、综合票房(万元)、综合票房占比、电影片名、大盘退票率、排座占比、场次、排片占比、分账票价和核心票房(万元)等信息 数据提供了每部电影在特定日期
- 基于A* 算法的无人机三维路径规划算法,可以动态避障,自己可以规定设计障碍物位置,MATLAB编程实现
- 视觉显著性驱动的面向机器视频编码框架基于VVC与YOLO的研究及其对物体检测的影响
- node-red创建节点流程
- 机械设计汽车锁零件全自动铆轴设备Creo5.0非常好的设计图纸100%好用.zip
- 基于 yolov8 的航行识别
- 机械设计软管接头压合step非常好的设计图纸100%好用.zip
- 学习threejs,导入AWD格式的模型
- mha5.7、mha5.8的rpm和tar包
- 机械设计全自动卡板拆堆跺滚筒线设备sw21可编辑非常好的设计图纸100%好用.zip
- ESP32-S3-WROOM-1乐鑫WIFI模块原理图和PCB,LCEDA格式
- PEM电解槽二维仿真模型,采用水电解槽,自由与多孔介质流动,固体与流体传热,收敛性良好,适用于探索不同的边界条件
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈