使用 Vue3 生成二维码和条形码

embedded/2024/12/23 4:23:23/

目录

前言

一、前期准备

1.1. 使用Vite创建工程化项目

1.2 安装所需的依赖

 二、环境检查

三、生成二维码

3.1 创建二维码组件

3.2 在App.vue中使用二维码组件

四、生成条形码

4.1 创建条形码组件

4.2.在App.vue中使用条形码组件

五、启动测试与效果演示

5.1 启动demo

5.2 二维码演示

5.3 条形码演示


前言

        在我刚接触CSDN时,便写下了第一篇使用python库生成二维码的博文,但是随着学习的知识越来越多,实现同一个功能,但可以通过不同的方式得以实现,本篇是通过Vue3和Vue的一些组件库从而实现的一个小demo

前期准备

1.1. 使用Vite创建工程化项目

        这里可以在vscode或是其他的IDE,或是直接找一个合适的目录,然后在cmd中即可

npm create vite@latest

        输入要创建的vue项目名,然后回车,选择Vue,然后回车,这里我的项目名是demo0-happy

选择自己想用的,不知道直接选js

 进入文件所处的目录

cd demo0-happy

1.2 安装所需的依赖

首先输入npm i 也就是(npm install的缩写)

将使用qrcode库来生成二维码,使用bwip-js来生成条形码。可以通过以下命令安装它们:

npm install qrcode bwip-js

 二环境检查

        首先,请确保已经安装了Node.js和Vue CLI。如果还未安装,可以通过以下命令进行安装:

npm install @vue/cli

三、生成二维码

3.1 创建二维码组件

        在src/components目录下创建QRCodeGenerator.vue文件,并添加以下代码:

<script setup>
import { ref } from 'vue';
import QRCode from 'qrcode';const text = ref('');
const qrCodeUrl = ref("");async function generateQRCode() {try {qrCodeUrl.value = await QRCode.toDataURL(text.value);} catch (err) {console.error(err);}
}</script><template><div><h2>二维码生成器</h2><input v-model="text" placeholder="输入文本生成二维码"><button @click="generateQRCode">生成二维码</button><div v-if="qrCodeUrl"><img :src="qrCodeUrl" alt="二维码"/></div></div>
</template><style scoped></style>

3.2 在App.vue中使用二维码组件

        打开src/App.vue文件,导入并使用QRCodeGenerator组件:

<script setup>
import QRCodeGenerator from './components/QRCodeGenerator.vue'
</script><template><div><QRCodeGenerator></QRCodeGenerator><hr></div>
</template><style scoped>
</style>

四、生成条形码

4.1 创建条形码组件

在src/components目录下创建BarcodeGenerator.vue文件,并添加以下代码:

<script setup>
import bwipjs from 'bwip-js'
import { ref } from 'vue'const text = ref('')
const barcodeCanvasRef = ref("")function generateBarcode() {bwipjs.toCanvas(barcodeCanvasRef.value, {bcid: 'code128', // 条形码类型text: text.value,scale: 3, // 缩放比例height: 10, // 条形码高度includetext: true, // 是否包括文本textxalign: 'center' // 文本对齐方式})
}
</script><template><div><h2>条形码生成器</h2><input v-model="text" placeholder="输入文本生成条形码" aria-label="输入文本" /><button @click="generateBarcode" aria-label="生成条形码">生成条形码</button><canvas ref="barcodeCanvasRef"></canvas></div>
</template><style scoped></style>

4.2.在App.vue中使用条形码组件

        同样,在src/App.vue中导入并使用BarcodeGenerator组件,此时会将之前的二维码的一并导入:

<script setup>
import QRCodeGenerator from './components/QRCodeGenerator.vue'
import BarcodeGenerator from './components/BarcodeGenerator.vue'</script><template><div><QRCodeGenerator></QRCodeGenerator><hr><BarcodeGenerator></BarcodeGenerator></div>
</template><style scoped>
</style>

启动测试与效果演示

5.1 启动demo

切换到项目的目录下,在项目的目录下启动

npm run dev 

将出现的url链接打开,便会出现下面的界面

 

5.2 二维码演示

        输入想要生成二维码的文字和信息,或是链接,然后点击生成二维码按钮即可,这里使用了utools的二维码识别截图工具(QRscan)识别如下

 

5.3 条形码演示

        这里操作的方式和上面是一样的


http://www.ppmy.cn/embedded/93391.html

相关文章

oracle 并行parallel的插入insert用法

在Oracle数据库中&#xff0c;INSERT 语句确实可以使用 Parallel&#xff08;并行&#xff09;功能。通过并行插入&#xff0c;可以在插入数据时同时利用多个并行操作进程来执行插入操作&#xff0c;从而显著提高插入操作的速度和效率。这对于需要处理大量数据插入的场景尤为有…

【大数据】探索大数据基础知识:定义、特征与生态系统

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; 工&#x1f497;重&#x1f497;hao&#x1f497;&#xff1a;野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题.…

Advanced IP Scanner - 网络扫描工具介绍

Advanced IP Scanner 是一款免费、快速且用户友好的网络扫描工具。它能够帮助用户扫描局域网&#xff08;LAN&#xff09;中的所有设备&#xff0c;提供详细的设备信息&#xff0c;包括IP地址、MAC地址、设备名称和厂商信息。该工具对IT管理员和普通用户都非常有用&#xff0c;…

Spring Cloud微服务项目文件上传/下载

在现代的微服务架构中&#xff0c;文件上传与下载是常见的需求&#xff0c;尤其是在需要处理大量文件数据的系统中。Spring Cloud 提供了灵活的工具和组件&#xff0c;使得在微服务中实现文件上传和下载变得高效而简便。 本文博主将详细介绍如何在 Spring Cloud 微服务项目中实…

操作ArkTS页面跳转及路由相关心得

本文为JS老狗原创。 当前端不得不关注的点&#xff1a;路由&#xff0c;今天聊一聊鸿蒙相关的一点心得。 总体上套路不意外&#xff0c;基本就是&#xff08;尤其是Web&#xff09;前端那些事&#xff1a;维护路由表、跳转带参数、历史堆栈操作&#xff0c;等等。 历史原因&…

java之贪婪爬取和非贪婪爬取

public class RegexDemo6 {public static void main(String[] args) {String str"java自从95年问世以来,abbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaa" " 经历了很多版本,目前企业中用的最多是java8和java11,""因为这俩个是长期版本,下一个长期支持版本是java…

使用Unity开发编辑系统时复制物体的一些细节问题

首先是复制一个GameObject时组件中的变量内容的复制问题&#xff0c;这个在Unity复制对象时让私有变量也被复制的简单方法这篇博客里面做了说明&#xff0c;但是其实还有一个问题&#xff0c;就是有些时候需要被复制的物体在刚创建出来的时候需要自动执行一些操作&#xff0c;这…

数据库基础知识

数据库基础知识 主流的数据库连接MySQL理解mysql和mysqld和数据库简单对数据库操作MySQL构架SQL分类存储引擎总结 主流的数据库 SQL Sever&#xff1a; 微软的产品&#xff0c;.Net程序员的最爱&#xff0c;中大型项目。Oracle&#xff1a; 甲骨文产品&#xff0c;适合大型项目…