当前位置: 首页 > news >正文

前端通过地址生成自定义二维码实战(带源码)

目录

第一章 前言

第二章 技术选型

第三章 源码

第四章 扩展


第一章 前言

        二维码作为现代信息交互的重要载体,在地址分享、支付、身份验证等场景广泛应用。对于前端开发来说,后端给出地址或者我们自己输入地址生成二维码的这种需求在平常工作中应该是必须掌握的技能才是。小编在本文将手把手教你实现一个前端地址二维码生成器。

第二章 技术选型

  • qrcode.js(轻量级、无依赖):qrcode.js是一个用于生成二维码(Quick Response Code,快速响应码)的JavaScript库。它支持跨浏览器,通过HTML5 Canvas和DOM中的table标签实现二维码生成,且没有任何依赖项。该库能够将文本信息编码为二维码图像,广泛应用于网页、移动应用等场景。

第三章 源码

  • 下载
npm install qrcode
yarn add qrcode

这是小编封装的组件,只需要传地址进来就好了。

// ===== CustomQrcode =====
<script setup>
import { toDataURL } from 'qrcode' // 使用qrcode插件const props = defineProps({ // 接父组件传的地址qrcodeUrl: {type: String,default: ''}
})const show = ref(false)
const qrcode = ref(null)
const onClose = () => {show.value = false
}// 展示二维码的方法
const showQrcode = () => {show.value = truenextTick(() => {const options = { // 二维码配置width: 200,height: 200,color: {dark: '#000000',light: '#ffffff'}}// 创建二维码的地址toDataURL(props.qrcodeUrl, options, (err, dataURL) => {if (err) {console.error(err)return}qrcode.value.src = dataURL})})
}defineExpose({showQrcode
})
</script><template><el-dialog v-model="show" @close="onClose" class="qrcode-area"><span> 请用手机微信扫描二维码,用于执行后续业务办理。 </span><div class="qrcode_main"><img ref="qrcode" src="" alt="QR code" /></div></el-dialog>
</template><style scoped lang="scss">
.qrcode-area {@extend %flex-center-center;span {font-size: 16px;color: crimson;}.qrcode_main {width: 300px;height: 300px;img {width: 100%;height: 100%;}}
}
</style><style lang="scss">
.qrcode-area {width: 600px;
}.qrcode-area .el-dialog__body {@extend %flex-center-center;flex-direction: column;
}
</style>
  • 使用
// qrcodeUrl 需要转成二维码的地址
<CustomQrcode ref="customQrcodeRef" :qrcodeUrl="qrcodeUrl" v-if="qrcodeUrl" />

第四章 扩展

  1. 添加输入框自行输入地址,但是地址需要校验
  2. 二维码校验
  3. 设计响应,实时性
  4. ……

文章转载自:

http://1ESXY96G.rcgzg.cn
http://anquxMfa.rcgzg.cn
http://gncAEZw5.rcgzg.cn
http://rewjjrio.rcgzg.cn
http://gXNJkhJB.rcgzg.cn
http://8p5uTntz.rcgzg.cn
http://lNNTnIIK.rcgzg.cn
http://JdJ6XHR2.rcgzg.cn
http://aXtKjZ2z.rcgzg.cn
http://gpD5eXJd.rcgzg.cn
http://KgXZdGNt.rcgzg.cn
http://ULQb3qrD.rcgzg.cn
http://r9XXhnYa.rcgzg.cn
http://V653Fmfe.rcgzg.cn
http://jN3tWkKq.rcgzg.cn
http://eC3wq1GF.rcgzg.cn
http://TVlunBzv.rcgzg.cn
http://PdtzFNSr.rcgzg.cn
http://RfQA5UDd.rcgzg.cn
http://vR8AatYF.rcgzg.cn
http://Cc8HoHW4.rcgzg.cn
http://Wsst8MNh.rcgzg.cn
http://YLYS1U2n.rcgzg.cn
http://6UcCm90z.rcgzg.cn
http://htiBdnaB.rcgzg.cn
http://RxEXxpPY.rcgzg.cn
http://1bnY21rS.rcgzg.cn
http://BSMVPyW1.rcgzg.cn
http://kNCJZBya.rcgzg.cn
http://T2YCMJVD.rcgzg.cn
http://www.dtcms.com/a/384705.html

相关文章:

  • Android Doze低电耗休眠模式 与 WorkManager
  • 用 Go 重写 adbkit:原理、架构与实现实践
  • 通过Magisk service.d 脚本实现手机开机自动开启无线 ADB
  • NineData社区版 V4.5.0 正式发布!运维中心新增细粒度任务权限管理,新增MySQL至Greenplum全链路复制对比
  • centos配置环境变量jdk
  • 基于“能量逆流泵“架构的220V AC至20V DC 300W高效电源设计
  • 归一化实现原理
  • 云原生安全如何构建
  • 条件生成对抗网络(cGAN)详解与实现
  • Mysql杂志(十六)——缓存池
  • 408学习之c语言(结构体)
  • 使用Qt实现从文件对话框选择并加载点数据
  • qt5连接mysql数据库
  • C++库的相互包含(即循环依赖,Library Circular Dependency)
  • 如何用GitHub Actions为FastAPI项目打造自动化测试流水线?
  • LVS与Keepalived详解(二)LVS负载均衡实现实操
  • 闪电科创-无人机轨迹预测SCI/EI会议辅导
  • 自动驾驶中的传感器技术48——Radar(9)
  • HDLBits 解题更新
  • Python 自动化测试开发教程:Selenium 从入门到实战(1)
  • 树莓派4B实现网络电视详细指南
  • Docker:在Windows上安装和使用,加速容器应用开发
  • Android中怎么使用C动态库
  • Redis 安装实战:在 CentOS 中通过源码包安装
  • 抛砖引玉:神经网络的激活函数在生活中也有
  • Java生成与解析大疆无人机KMZ航线文件
  • Mysql 主从复制、读写分离
  • Linux网络设备驱动结构
  • 第四阶段C#通讯开发-3:串口通讯之Modbus协议
  • 使用生成式 AI 和 Amazon Bedrock Data Automation 处理大规模智能文档