首页 > 其他分享 >使用 Vue 3 和 JsBarcode 开发一维码显示组件

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

时间:2024-06-01 10:02:05浏览次数:26  
标签:BarcodeGenerator JsBarcode vue format value Vue 一维 组件

在现代前端开发中,条形码(或称一维码)在许多应用场景中非常常见,例如商品管理、物流跟踪等。本文将介绍如何使用 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 值来展示各种格式的一维码。

标签:BarcodeGenerator,JsBarcode,vue,format,value,Vue,一维,组件
From: https://blog.csdn.net/u010362741/article/details/139349887

相关文章

  • vue3 组件级权限控制
    权限控制程度分为:1.页面级2.组件级3.代码级1.页面级这是大部分前端遇到的级别。依靠路由守卫,如果没有权限,就看不到菜单,就进不到页面。不会给页面带来侵入性。什么是侵入性,就是写页面组件的时候,还要考虑权限。2.组件级有没有权限都可以看到页面组件,但是不同权限的人,......
  • vue3 语法测试
    Home.vue<template><divclass="home"><div>{{fone}}</div><div>{{ftwo}}</div><div>{{ffour}}</div><div>{{ffive}}......
  • vue3组件通信与props
    title:vue3组件通信与propsdate:2024/5/31下午9:00:57updated:2024/5/31下午9:00:57categories:前端开发tags:Vue3组件Props详解生命周期数据通信模板语法CompositionAPI单向数据流Vue3组件基础在Vue3中,组件是构建用户界面的基本单位,它们是可复用......
  • 基于springboot + vue实现工厂车间管理系统项目演示【附项目源码+论文说明】
    摘要社会发展日新月异,用计算机应用实现数据管理功能已经算是很完善的了,但是随着移动互联网的到来,处理信息不再受制于地理位置的限制,处理信息及时高效,备受人们的喜爱。本次开发一套基于VUE的工厂车间管理系统,有管理员和人员两个角色。管理员功能有个人中心,人员管理,看板信......
  • vue路由
    路由介绍vue属于单页面应用程序(SinglePageApplication,SPA),也就是说一个网站中显示一个页面,所有的功能与交互都在这唯一的一个页面内完成所谓路由,其实就是根据浏览器的访问路径不同,将不同的组件渲染到唯一的一个页面上而路由的核心就是配置页面路径和访问组件之间的映......
  • vue之vuex使用
    如图所示,它是一个程序里面的状态管理模式,它是集中式存储所有组件的状态的小仓库,并且保持我们存储的状态以一种可以预测的方式发生变化。对于可以预测,现在我不多做说明,相信在看完这篇文章之后,你就会有自己的理解。第一步,了解Vuex......
  • 记录一下LogicFlow流程图在vue3中的简单使用,配置左侧菜单工具栏和右键菜单
     最终的效果配置画布首先通过npm安装LogicFlownpminstall@logicflow/core--save在vue页面引用LogicFlow和cssimportLogicFlowfrom"@logicflow/core";import"@logicflow/core/dist/style/index.css"; 创建div容器并添加ref<divid="container"ref=......
  • 采用java18+vue语言+springboot开发的家政上门服务平台源码,(平台管理端+用户端+服务端
    采用java18+vue语言+springboot开发的家政上门服务平台源码,(平台管理端+用户端+服务端全套源码)家政管理平台系统是运用现代计算机和网络技术,集信息网、服务网为一体,对社区家政需求信息汇集整理、综合处理,发挥信息介绍、组织服务、资源共享的作用,向社区居民提供优质服务的网络......
  • yarn的安装,并使用yarn安装vue脚手架
    首先全局安装yarnnpminstallyarn-g设置yarn的下载源为淘宝镜像yarnconfigsetregistry https://registry.npm.taobao.org官方镜像地址: https://registry.yarnpkg.com查看镜像是否切设置成功yarnconfiggetregistry全局安装vue-cli脚手架yarnglobaladd@vue/cli查......
  • 反单引号在vue文件的alert中怎么换行
    在alert里面将dangerouslyUseHTMLString开启设置为true,这样子就可以使用html中的来进行换行了但是,message属性虽然支持传入HTML片段,但是在网站上动态渲染任意HTML是非常危险的,因为容易导致XSS攻击。因此在dangerouslyUseHTMLString打开的情况下,请确保message的内容......