前端Vue组件化实践:打造自定义等宽tabs标签组件

news2024/12/28 22:26:54

在前端开发的世界里,随着业务复杂度的提升和需求的多样化,传统的整体式开发方式已经难以满足快速迭代和高效维护的需求。组件化开发作为一种重要的解决方案,正逐渐受到广大开发者的青睐。本文将结合Vue框架,探讨如何通过组件化开发实现一个自定义等宽标签栏,并分享其在实际业务场景中的应用。

一、组件化开发的必要性与优势

在传统的开发模式中,一个系统往往被设计成一个整体的应用,这种方式的缺点是显而易见的:一旦某个部分需要修改或增加新功能,可能会牵一发而动全身,导致整个系统的逻辑都需要重新调整。这不仅降低了开发效率,也增加了维护成本。

组件化开发的出现,为这一问题提供了有效的解决方案。通过将系统拆分成多个独立的组件,我们可以实现单独开发、单独维护,并且这些组件之间可以灵活地组合和复用。这不仅提高了开发效率,也使得系统的维护和扩展变得更加容易。

二、Vue组件化实践:自定义等宽tabs标签栏组件

效果图如下:

图片

图片

图片

使用方法
<!-- tabArr:标签数组 current:当前选择序列  tabClick:tab点击事件-->
<cc-chooseTab :tabArr="tabArr" :current="myCurrent" @tabClick="tabClick"></cc-chooseTab>                    
HTML代码实现部分
<template>
    <view class="page">

        <!-- tabArr:标签数组 current:当前选择序列  tabClick:tab点击事件-->
        <cc-chooseTab :tabArr="tabArr" :current="myCurrent" @tabClick="tabClick"></cc-chooseTab>

        <image style="width: 92vw;margin-left: 4vw; margin-top: 60px;" mode="aspectFill" :src="srcArr[myCurrent]">
        </image>

        <cc-botToolBar @click="botMenuClick"></cc-botToolBar>

    </view>
</template>

<script>
    export default {

        data() {
            return {
                myCurrent: 0,
                // 新时代大湾区港澳台湾
                tabArr: ["新时代", "大湾区", "港澳台湾", "暖新闻"],
                srcArr: ["../../static/content1.png", "../../static/content2.png", "../../static/content3.png",
                    "../../static/content4.png"
                ]
            };
        },

        methods: {

            tabClick(flag) {
                this.myCurrent = flag;
                console.log("点击tab序列 = " + flag);
                this.mySrc = this.srcArr[this.myCurrent];

            },
            botMenuClick(flag) {

                console.log("底部菜单按钮点击序列 = " + flag);
            }
        }
    }


<style scoped lang="scss">
    page {

        padding-bottom: 70px;
    }
</style>

接下来,我们将以Vue框架为基础,实现一个自定义等宽标签栏组件。这个组件可以根据传入的标签数组动态生成标签栏,并且支持点击事件和当前选中标签的展示。

首先,我们需要定义组件的模板和样式。在Vue中,组件的模板通常使用HTML和Vue的模板语法编写,而样式则可以使用CSS或预处理器如Sass、Less等。对于等宽标签栏,我们需要确保每个标签的宽度相同,并且标签栏整体居中显示。

接下来,我们需要实现组件的逻辑部分。在Vue中,组件的逻辑通常写在<script>标签内,包括数据、方法、计算属性等。对于我们的等宽标签栏组件,我们需要定义以下属性:

  • tabArr:标签数组,用于动态生成标签栏的标签。

  • current:当前选中的标签的索引。

  • tabClick:标签点击事件,当用户点击某个标签时触发。

在组件内部,我们需要根据tabArr动态渲染标签,并为每个标签绑定点击事件。当用户点击某个标签时,我们需要更新current的值,并触发tabClick事件。

三、组件的使用与扩展

完成组件的开发后,我们就可以在父组件或页面中引用和使用它了。在Vue中,我们可以使用<component-name>的形式来引用组件,并通过属性传递数据,通过事件监听来处理组件内部的事件。

例如,我们可以在父组件中定义一个标签数组tabArr和一个当前选中的标签索引myCurrent,然后将它们作为属性传递给等宽标签栏组件。同时,我们还需要定义一个方法来处理标签点击事件。

除了基本的使用方式外,我们还可以根据实际需求对组件进行扩展和定制。例如,我们可以为标签栏添加更多的样式选项,或者为标签添加图标、提示信息等。

四、总结与展望

通过组件化开发,我们可以将复杂的系统拆分成多个独立的组件,实现单独开发、单独维护,并且可以灵活地组合和复用这些组件。这不仅提高了开发效率,也使得系统的维护和扩展变得更加容易。

在本文中,我们结合Vue框架实现了一个自定义等宽标签栏组件,并介绍了其在实际业务场景中的应用。当然,组件化开发并不仅仅局限于标签栏这样的简单组件,它还可以应用于更复杂的业务场景和系统中。未来,我们将继续探索和实践组件化开发,为前端开发带来更多的便利和可能性。

组件下载地址:

https://ext.dcloud.net.cn/plugin?id=13170

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1925701.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何在Linux上如何配置虚拟主机

在Linux上配置虚拟主机可以通过使用Apache HTTP服务器来实现。Apache是一个开源的跨平台的Web服务器软件&#xff0c;可以在多种操作系统上运行并支持虚拟主机的配置。 以下是在Linux上配置虚拟主机的步骤&#xff1a; 安装Apache HTTP服务器 在终端中运行以下命令来安装Apache…

CANoe:为什么两个VLAN接口不能设置同一个网络的IP地址呢?

经常玩CANoe的人应该配置过TCP/IP Stack中网络节点的网卡信息&#xff0c;基本的信息包含&#xff1a;MAC地址、IP地址、子网掩码、默认网关、MTU值、IPv6地址。 如果你想让发送出去的报文携带VLAN tag&#xff0c;可以在网卡上添加VLAN tag信息。 此时你就能得到两个新的网卡V…

加速数字化转型,信创自主可控:TapData 为银行业数据管理能力建设提供新思路

使用 TapData&#xff0c;化繁为简&#xff0c;摆脱手动搭建、维护数据管道的诸多烦扰&#xff0c;轻量代替 OGG、DSG 等同步工具&#xff0c;「CDC 流处理 数据集成」组合拳&#xff0c;加速仓内数据流转&#xff0c;帮助企业将真正具有业务价值的数据作用到实处&#xff0c;…

防火墙nat与智能选路

这里写目录标题 此实验是基于上个实验的基础上添加功能拓扑1办公区设备可以通过电信链路和移动链路上网(多对多的NAT&#xff0c;并且需要保留一个公网IP不能用来转换)首先在fw1防火墙创建电信和移动两个安全区域&#xff0c;并且将对应的接口划分进去配置nat测试 分公司设备可…

Java核心篇之JVM探秘:内存模型与管理初探

系列文章目录 第一章 Java核心篇之JVM探秘&#xff1a;内存模型与管理初探 第二章 Java核心篇之JVM探秘&#xff1a;对象创建与内存分配机制 第三章 Java核心篇之JVM探秘&#xff1a;垃圾回收算法与垃圾收集器 第四章 Java核心篇之JVM调优实战&#xff1a;Arthas工具使用及…

[web]-sql注入-白云搜索引擎

ctrlu查看源代码&#xff0c;发现前端有js过滤 <script>function myFunction(){var xdocument.getElementById("number").value;var adocument.getElementById("word").value;var ba.replace(/[\ |\~|\|\!|\|\#|\$|\%|\^|\&|\*|\(|\)|\-|\_|\|\…

linux之find指令基础

目录 前言一、find .二、find xxx -name "*.c"三、组合查找文件名四、find . -type f五、find . -maxdepth 2 -type f六、find . -type f -perm 777七、find . -type f -name "*.txt" ! -perm 777八、借助-exec命令参考链接 前言 testfind下 check1.c ch…

【HTML入门】第十二课 - iframe框架

在早期没有出现Vue和React之前呢&#xff0c;做管理系统&#xff0c;iframe是非常普遍的技术。比如管理系统左侧有非常多的菜单&#xff0c;然后点击菜单后&#xff0c;右边就要展现不同的页面。 又或者呢&#xff0c;我们看一些网站&#xff0c;他们侧边展示着五彩绚烂的广告&…

在 PostgreSQL 里如何实现数据的实时监控和性能瓶颈的快速定位?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 在 PostgreSQL 里如何实现数据的实时监控和性能瓶颈的快速定位一、数据实时监控的重要性二、PostgreSQ…

MySQL学习记录 —— 이십 常用工具包

文章目录 1、总览2、mysqlcheck - 表维护程序1、作用2、注意事项3、语法4、命令选项下面每块都大致有这四个部分 3、Mysqldump - 数据库备份程序4、mysqladmin - MySQL 服务器管理程序5、mysqlshow - 显示数据库、表和列信息6、mysqldumpslow - 总结慢查询日志文件7、mysqlbinl…

福利:领取生育津贴汇总

大家注意了&#xff0c;最近多地区发文&#xff0c;生育津贴有了新变化。为了国家的未来&#xff0c;各位大佬记得全力以赴三胎。 01北京--不用缴费也能领取生育津贴 7月1日&#xff0c;北京市人社局、医保局、财政局、税务局等多部门联合印发了《关于领取失业保险金人员参加生…

【并发编程】进程 线程 协程

进程&#xff08;Process&#xff09;、线程&#xff08;Thread&#xff09;和协程&#xff08;Coroutine&#xff09;构成了计算机科学中实现任务并发执行的三种核心抽象机制。通常&#xff0c;为了提高程序的执行效率&#xff0c;开发者会根据应用场景和性能需求&#xff0c;…

Java核心篇之JVM调优实战:Arthas工具使用及GC日志分析

系列文章目录 第一章 Java核心篇之JVM探秘&#xff1a;内存模型与管理初探 第二章 Java核心篇之JVM探秘&#xff1a;对象创建与内存分配机制 第三章 Java核心篇之JVM探秘&#xff1a;垃圾回收算法与垃圾收集器 第四章 Java核心篇之JVM调优实战&#xff1a;Arthas工具使用及…

什么? CSS 将支持 if() 函数了?

CSS Working Group 简称 CSSWG, 在近期的会议中决定将 if() 添加到 CSS Values Module Level 5 中。 详情可见&#xff1a;css-meeting-bot 、[css-values] if() function 当我看到这个消息的时候&#xff0c;心中直呼这很逆天了&#xff0c;我们知道像 less 这些 css 这些预…

【深度学习】PyTorch深度学习笔记02-线性模型

1. 监督学习 2. 数据集的划分 3. 平均平方误差MSE 4. 线性模型Linear Model - y x * w 用穷举法确定线性模型的参数 import numpy as np import matplotlib.pyplot as pltx_data [1.0, 2.0, 3.0] y_data [2.0, 4.0, 6.0]def forward(x):return x * wdef loss(x, y):y_pred…

【原创】springboot+mysql图书共享交流平台设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

HTTP请求走私漏洞原理与利用手段分析

文章目录 前言Http请求走私1.1 漏洞诞生场景1.2 漏洞基本原理1.3 HTTP1.1与2.0 请求走私分类2.1 CL.TE类型实例2.2 TE.CL类型实例2.3 TE.TE混淆实例2.4 漏洞检测工具&#xff1f; 请求走私利用3.1 绕过前端安全控制3.2 揭示前端请求重写3.3 捕获他人请求内容3.4 走私构造反射XS…

用Java链接MySQL数据库的总结

✨个人主页&#xff1a; 不漫游-CSDN博客 前言 在日常开发中&#xff0c;使用Java连接MySQL数据库是一个常见的任务&#xff0c;涉及多个步骤。接着我就带着大家细细看来~ 一.下载.jar 包文件 1.什么是.jar 文件 通俗点讲就是一个压缩包&#xff0c;不过里面存放的都是由Java代…

实验2——基于NAT技术的实验(基于实验1)

目录 实验拓扑图​ 实验要求&#xff1a; 实验思路 基于NAT的简单知识点&#xff1a; 实验步骤 1. 给路由器R1配置IP 2.创建区域 2.1 电信&#xff1a; 2.2 移动&#xff1a; 3.办公区的NAT策略 3.1 服务器映射&#xff08;移动链路&#xff09;​编辑 3.2 写一条分公…

【算法/数列】等差数列子序列算术序列

概念&#xff1a; 等差数列&#xff1a;任意两项的差总等于同一个常数 子数组 &#xff1a;是数组中的一个连续序列。 子序列&#xff1a;是通过从原序列删除零个或多个元素并在不改变顺序的情况下排列其余元素而获得的序列 算术序列&#xff1a;是一个数字列表&#xff0c;其中…