QRCode.js是一个用于生成二维码的JavaScript库。通过获取DOM的标签,再通过Canvas或者img绘制而成。 qrcodejs
方法一
1、直接cdn script 引入
<div id="qrcode"></div>
<script type="text/javascript">
new QRCode(document.getElementById("qrcode"), "http://jindo.dev.naver.com/collie");
</script>
2、vue 组件引入(非全局)
tips: 如何vue用了v-if注意dom是否已经有了。(setTimeout处理)
- npm i qrcodejs2
- import QRCode from 'qrcodejs2'
不全局依赖,可以弄个外部UI 库,然后引入
import QRCode from 'qrcodejs2'
export default QRCode
使用
// dom 生成二维码的盒子
import QRCode from 'XXXXXX/qrCode' // 组件目录
setTimeout(() => {
let qrCode = new QRCode(dom, {
width: 193, // 图像宽度
height: 193, // 图像高度
colorDark: '#000000', // 前景色
colorLight: '#ffffff', // 背景色
correctLevel: QRCode.CorrectLevel.H // 容错级别
})
qrCode.clear()
qrCode.makeCode(url)
}, 0)
二维码边缘箭头 css
<div class="qrCodeLine"></div>
.qrCodeLine{
background: linear-gradient(#17161C, #17161C) left top,
linear-gradient(#17161C, #17161C) left top,
linear-gradient(#17161C, #17161C) right top,
linear-gradient(#17161C, #17161C) right top,
linear-gradient(#17161C, #17161C) right bottom,
linear-gradient(#17161C, #17161C) right bottom,
linear-gradient(#17161C, #17161C) left bottom,
linear-gradient(#17161C, #17161C) left bottom;
background-repeat: no-repeat;
background-size: 4px 20px, 20px 4px;
height: 222px /@p;
width: 222px /@p;
display: flex;
margin: 0 auto;
img{
display: block;
width: 193px /@p;
height: 193px /@p;
margin: auto;
}
}
方法二
使用方法
- 安装
npm install --save katoto_qrcode
- 使用 components方式引入
<template>
<div id="app">
<katotoQrcode :qrWidth="200" :codeMsg="codeMsg"> </katotoQrcode>
</div>
</template>
<script>
import katotoQrcode from 'katoto_qrcode'
export default {
components: {
katotoQrcode
},
data(){
return{
codeMsg: ['1', '2', '3']
}
}
}
</script>
参数列表
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| qrWidth | Number | 200 | 二维码的图像宽度 |
| qrHeight | Number | 200 | 二维码的图像高度 |
| colorDark | String | #000000 | 二维码前景色 |
| colorLight | String | #ffffff | 二维码背景色 |
| codeMsg | String | Array | 123 | 二维码数据,如果传入的是数组,就展示多个二维码 |
| scanMargin | String | Number | 20 | 二维码边角的间距, 写0就不展示边角样式 |
效果
参考
3-5年内部岗位(平安、乐信、500万、vivo、oppo)推荐机会,欢迎发简历到: zgxie@126.com