使用 Vue 3 和 JsBarcode 开发一维码显示组件

embedded/2024/11/14 11:53:12/

在现代前端开发中,条形码(或称一维码)在许多应用场景中非常常见,例如商品管理、物流跟踪等。本文将介绍如何使用 Vue 3 和 JsBarcode 库来创建一个灵活的一维码显示组件,并展示如何在应用中使用它。

1. 安装必要的依赖

首先,我们需要安装 Vue 3 和 JsBarcode。如果你还没有创建 Vue 3 项目,可以使用 Vue CLI 快速创建一个新项目:

npm install -g @vue/cli
vue create barcode-app
cd barcode-app

然后,安装 JsBarcode:

npm install jsbarcode

2. 创建 BarcodeGenerator 组件

接下来,我们创建一个名为 BarcodeGenerator 的组件,用于生成和显示一维码。

BarcodeGenerator.vue
<template><div><svg ref="barcode"></svg></div>
</template><script setup>
import { ref, onMounted, watch } from 'vue';
import JsBarcode from 'jsbarcode';
import { defineProps } from 'vue';const props = defineProps({value: {type: String,required: true,},format: {type: String,default: 'CODE128',validator: (value) => ['CODE128','EAN13','EAN8','UPC','CODE39','ITF14','MSI','Pharmacode'].includes(value),},
});const barcode = ref(null);const generateBarcode = () => {if (barcode.value) {JsBarcode(barcode.value, props.value, {format: props.format,lineColor: '#000',width: 2,height: 100,displayValue: true,});}
};onMounted(generateBarcode);watch(() => props.value, generateBarcode);
watch(() => props.format, generateBarcode);
</script>

3. 在应用中使用 BarcodeGenerator 组件

现在,我们可以在应用中使用 BarcodeGenerator 组件。我们将创建一个示例页面,展示不同格式的一维码。

App.vue
<template><div id="app"><h1>一维码示例</h1><BarcodeGenerator value="123456789012" format="EAN13"></BarcodeGenerator><BarcodeGenerator value="12345678" format="EAN8"></BarcodeGenerator><BarcodeGenerator value="123456789012" format="UPC"></BarcodeGenerator><BarcodeGenerator value="CODE39EXAMPLE" format="CODE39"></BarcodeGenerator><BarcodeGenerator value="1234567890123" format="ITF14"></BarcodeGenerator><BarcodeGenerator value="123456" format="MSI"></BarcodeGenerator><BarcodeGenerator value="1234" format="Pharmacode"></BarcodeGenerator></div>
</template><script setup>
import BarcodeGenerator from './components/BarcodeGenerator.vue';
</script>

4. 运行应用

确保你的项目设置正确,然后运行应用:

npm run serve

访问你的应用,你应该会看到一系列不同格式的一维码。

详细解释

组件定义和道具验证

BarcodeGenerator 组件中,我们定义了两个道具:valueformatvalue 是必需的字符串道具,用于生成条形码的数据。format 是可选的字符串道具,指定条形码的格式,默认值为 CODE128。为了确保传入的格式是有效的,我们使用了 validator 函数进行验证。

条形码生成逻辑

我们使用 Vue 3 的组合式 API(<script setup> 语法糖)来定义组件的逻辑。在 setup 函数中,我们创建了一个对 SVG 元素的引用,并定义了 generateBarcode 函数来生成条形码。在组件挂载时(onMounted)以及每次道具变化时(通过 watch 监听道具变化),都会调用 generateBarcode 函数。

应用中的使用

App.vue 中,我们引入并使用了 BarcodeGenerator 组件,并传递了不同的 valueformat 值来展示各种格式的一维码。


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

相关文章

虚幻引擎5 Gameplay框架(四)

Gameplay重要类及重要功能使用方法&#xff08;三&#xff09; 虚幻的委托机制 虚幻委托之间的区别序列化就是是否可以在蓝图中执行 多播与单播的创建 制作功能&#xff1a;使用多播与单播将血条与血量进行实时更新首先新建一个单播与一个多播委托 实例化这两个委托的标签…

Spring控制重复请求

通过AOP拦截所有请求&#xff0c;控制在规定时间内请求次数。 1&#xff1a;添加maven <dependency><groupId>net.jodah</groupId><artifactId>expiringmap</artifactId><version>0.5.10</version> </dependency> 2&#x…

族乐智能一体化电动窗帘智能家居领域智能窗帘

族乐智能一体化电动窗帘智能家居领域智能窗帘 一体式 智能窗帘——轻轻一动&#xff0c;生活便焕发智慧之光。窗帘的智能化革新&#xff0c;已然成为席卷全球的一股风潮&#xff0c;尤其在欧洲与美国的众多酒店、精致住宅与豪华别墅中&#xff0c;智能窗帘早已融入日常生活的…

LabVIEW与欧陆温控表通讯的实现与应用:厂商软件与自主开发的优缺点

本文探讨了LabVIEW与欧陆温控表通讯的具体实现方法&#xff0c;并对比了使用厂商提供的软件与自行开发LabVIEW程序的优缺点。通过综合分析&#xff0c;帮助用户在实际应用中选择最适合的方案&#xff0c;实现高效、灵活的温控系统。 LabVIEW与欧陆温控表通讯的实现与应用&#…

蓝牙Mesh模块多跳大数据量高带宽传输数据方法

随着物联网技术的飞速发展&#xff0c;越来越多的设备需要实现互联互通。蓝牙Mesh网络作为一种低功耗、高覆盖、易于部署的无线通信技术&#xff0c;已经成为物联网领域中的关键技术之一。在蓝牙Mesh网络中&#xff0c;节点之间可以通过多个跳数进行通信&#xff0c;从而实现大…

Pytest框架中用例用例执行常用参数介绍

pytest 支持通过命令行参数来定制测试运行的方式。以下是一些常用的 pytest 执行参数介绍。 学习目录 -q 或 --quiet: 安静模式&#xff0c;只显示进度和摘要 -s : 选项允许在测试的输出中捕获 stdout 和 stderr。 -v : 选项会使 pytest 的输出更加详细。 -k &#xff1a;…

FFS in Unix

目录 旧文件系统 新文件系统 存储优化 文件系统可以被配置 分布优化 性能 FFS.pdf (berkeley.edu) 这是一个介绍的是关于Unix文件系统革新的文章。 旧文件系统 早在贝尔实验室时期下的Unix文件系统是简单的——文件系统被用作是以组织磁盘的1种数据结构而诞生的它把每一…

小白跟做江科大32单片机之LED闪烁

原理介绍 原理介绍详见&#xff1a; 【STM32】江科大STM32学习笔记汇总(已完结)_stm32江科大笔记-CSDN博客https://blog.csdn.net/u010249597/article/details/134762513 项目准备 1.在项目文件夹中新建3-1 LED文件夹 2.keil新建项目&#xff0c;打开新建的3-1 LED&#xf…