vue有两种生成二维码的方式,qrcode、vue-qr(有icon);


vue有两种生成二维码的方式,qrcodevue-qr(有icon);

1. 使用qrcode生成二维码

1.1 安装

	npm install --save qrcodejs2

1.2 引入

	//所需页面导入
	import QRCode from 'qrcodejs2'

1.3 使用

<div class="qrcode" ref="qrCodeUrl"></div>
<script>
import QRCode from 'qrcodejs2'
export default {
  data() {
    return {
  },
  methods: {
    creatQrCode() {
        var qrcode = new QRCode(this.$refs.qrCodeUrl, {
            text: 'https://blog.csdn.net/weixin_42601136', // 需要转换为二维码的内容
            width: 100,
            height: 100,
            colorDark: '#000000',
            colorLight: '#ffffff',
            correctLevel: QRCode.CorrectLevel.H
        })
    },
},
mounted() {
    this.creatQrCode();
},
};
</script>

2. 使用vue-qr生成二维码(有icon)

2.1 安装

如果失败了一般是因为这个包依赖canvas,canvas托管在github,国内访问容易超时,解决办法:
https://blog.csdn.net/EverRose/article/details/122846767

	npm install vue-qr --save

2.2 引入

	vue2.x  import vueQr from 'vue-qr'
	vue3.x  import vueQr from 'vue-qr/src/packages/vue-qr.vue'

2.3 使用

<template>
  <div>
    <div class="qrcode" ref="qrCodeUrl"></div>
    <vue-qr :logoSrc="imageUrl" text="https://blog.csdn.net/weixin_42601136" :size="200"></vue-qr>
  </div>
</template>

<script>
import QRCode from "qrcodejs2";
import vueQr from "vue-qr";
export default {
  data() {
    return {
      imageUrl: require("./sw.jpg"),
    };
  },
  components: {
    vueQr,
  },
  methods: {
    creatQrCode() {
      var qrcode = new QRCode(this.$refs.qrCodeUrl, {
        text: "https://blog.csdn.net/weixin_42601136", // 需要转换为二维码的内容
        width: 100,
        height: 100,
        colorDark: "#000000",
        colorLight: "#ffffff",
        correctLevel: QRCode.CorrectLevel.H,
      });
    },
  },
  mounted() {
    this.creatQrCode();
  },
};
</script>


<style scoped>
.qrcode {
  display: inline-block;
  width: 132px;
  height: 132px;
  background-color: #fff;
  padding: 6px;
  box-sizing: border-box;
}
</style>

2.4 文档

参数说明
text二维码内容 (必需)
size尺寸, 长宽一致, 包含外边距 (必需)
margin二维码图像的外边距, 默认 20px (可选)
dotScale数据区域点缩小比例, 默认为0.35 (可选)
correctLevel容错级别 0 - 3 (可选)
whiteMargin若设为 true, 背景图外将绘制白色边框(默认是true) (可选)
bindElement指定是否需要自动将生成的二维码绑定到HTML上(默认是true) (可选)
callback生成的二维码 Data URI 可以在回调中取得, 第一个参数为二维码 data URL, 第二个参数为 props 传过来的 qid(因为二维码生成是异步的, 所以加个 id 用于排序)
颜色 –
colorDark实点的颜色 (可选)
colorLight空白区的颜色 (可选)
autoColor若为 true, 背景图的主要颜色将作为实点的颜色, 即 colorDark, 默认 true // 若设置了 autoColor,则 colorDark 和 colorLight 都将被忽略。 (可选)
背景图像 –
bgSrc欲嵌入的背景图地址 (可选)
gifBgSrc欲嵌入的背景图 gif 地址, 设置后普通的背景图将失效。设置此选项会影响性能 (可选)
backgroundColor背景色 (可选)
backgroundDimming叠加在背景图上的颜色, 在解码有难度的时有一定帮助 (可选)
logo图像 –
logoSrc嵌入至二维码中心的 LOGO 地址 (可选 )
logoScale用于计算 LOGO 大小的值, 过大将导致解码失败, LOGO 尺寸计算公式,logoScale(size - 2margin), 默认 0.2 (可选 )
logoMargin标识周围的空白边框, 默认为0 (可选 )
logoBackgroundColor背景色, 需要设置 logo margin (可选 )
logoCornerRadius标识及其边框的圆角半径, 默认为0 (可选)
后处理
binarize若为 true, 图像将被二值化处理, 未指定阈值则使用默认值,默认是false (可选)
binarizeThreshold(0 < threshold < 255) 二值化处理的阈值 (可选)
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要批量生成二维码并打包,你可以使用以下步骤: 1. 安装 vue-qr 插件:在命令行中运行 `npm install vue-qr --save`,或者在项目目录下运行 `yarn add vue-qr`。 2. 创建一个二维码生成器组件:在 Vue 应用中创建一个新的组件,用于批量生成二维码。在组件中使用 vue-qr 插件来生成二维码。 3. 创建一个数据源:在组件中创建一个数据源,用于存储所有要生成二维码的数据。可以使用数组或对象存储数据。 4. 使用 v-for 指令循环生成二维码:在组件中使用 v-for 指令循环遍历数据源,使用 vue-qr 插件生成二维码,并将生成的二维码添加到页面中。 5. 打包生成的二维码:在组件中添加一个按钮,当用户点击按钮时,使用 jszip 插件将所有二维码打包成一个压缩文件,并将文件下载到本地。 以下是一个简单的示例代码: ```html <template> <div> <div v-for="(data, index) in dataSource" :key="index"> <p>{{ data.name }}</p> <qrcode :value="data.code"></qrcode> </div> <button @click="handleDownload">Download</button> </div> </template> <script> import VueQr from 'vue-qr' import JSZip from 'jszip' import FileSaver from 'file-saver' export default { components: { VueQr }, data() { return { dataSource: [ { name: 'Qrcode 1', code: 'https://www.example.com/1' }, { name: 'Qrcode 2', code: 'https://www.example.com/2' }, { name: 'Qrcode 3', code: 'https://www.example.com/3' } ] } }, methods: { handleDownload() { const zip = new JSZip() this.dataSource.forEach((data, index) => { const imgData = this.$refs[`qrcode${index}`][0].$el.toDataURL() zip.file(`${data.name}.png`, imgData.substr(imgData.indexOf(',') + 1), { base64: true }) }) zip.generateAsync({ type: 'blob' }).then((content) => { FileSaver.saveAs(content, 'qrcodes.zip') }) } } } </script> ``` 在上述示例代码中,我们使用了 vue-qr 插件来生成二维码,使用 jszip 插件将所有二维码打包成一个压缩文件,并使用 file-saver 插件将文件下载到本地。注意,我们使用了 $refs 来获取每个二维码组件的实例,并将实例转换为图片数据进行打包。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值