概要
实现输入内容后点击回车或生成按钮,生成二维码,扫描后是我们在输入框的值.
在上述图片,第一个为输入内容,第二个图片就是显示的二维码.
整体架构流程
使用VsCode编译器
Vue2+qrcodejs2插件实现二维码生成操作
实现过程
创建vue
首先通过wepack创建vue项目:vue create 项目名
VsCode打开项目
打开终端
打开后,在终端中输入npm run serve
,测试有无报错
下载qrcodejs2插件
这个vue插件的主要功能就是根据内容来生成对应的二维码。
npm install qrcodejs2 --save
注:不要忘了–save
导入和使用qrcodejs2
下载成功后应该是能用搜索或者package.json中能看到这个插件名
导入就在默认的HelloWorld.vue组件中的script进行操作
<script> import QRCode from 'qrcodejs2' export default { name: 'QRCodeGenerator', } </script>
上述代码的import QRCode from 'qrcodejs2'
,则为导入代码。
使用代码在下节进行测试代码展示与代码讲解。
代码展示与讲解
<template> <div class="qrcode"> <h1>生成二维码</h1> <label for="text">请输入要转换为二维码的内容:</label> <input type="text" id="text" v-model="text" @keyup.enter="generateQRCode"/> <button @click="generateQRCode">生成</button> <div ref="qrcode" style="margin:0 auto;"></div> </div> </template> <script> import QRCode from 'qrcodejs2' export default { name: 'QRCodeGenerator', data() { return { text: '', qrcode: null, } }, methods: { generateQRCode() { if (this.qrcode!=null) { this.qrcode.clear() // 清除原来的二维码 } this.qrcode = new QRCode(this.$refs.qrcode, { width: 256, height: 256, text: this.text }) } } } </script> <style> .qrcode input[type=text] { width: 20%; padding: 10px; font-size: 18px; margin-bottom: 20px; } .qrcode button { background-color: #4CAF50; color: white; padding: 12px 20px; border: none; border-radius: 4px; cursor: pointer; } .qrcode button:hover { background-color: #45a049; } .qrcode div { margin-top: 20px; } </style>
在这个测试代码中,我们定义了一个名为 QRCodeGenerator 的组件,并在其中定义了一个 generateQRCode() 方法。在该方法中,我们利用 qrcodejs2 库生成二维码,并将其添加到组件的模板中。
注意,在组件挂载后,需要使用 this.$refs.qrcode 获取到
元素并将其传递给 QRCode 构造函数的第一个参数。这样才能正常地生成二维码。
此外,在每次生成新的二维码之前,要调用 clear() 方法清除原来的二维码,否则会导致新旧二维码叠加在一起。
最后,我为组件添加了一些CSS 样式。