前端vue自定义table 表格 表格组件 Excel组件

news2025/1/15 22:30:54

前端组件化开发与Excel组件设计

一、前端开发的复杂性与组件化的必要性

随着技术的发展,前端开发的复杂度越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。为了解决这个问题,组件化开发应运而生。组件化开发可以将大型应用分解为一系列独立且可复用的组件,每个组件可以单独开发、单独测试、单独维护,并且可以随意组合,大大提高了开发效率,降低了维护成本。

二、组件化的实现

组件化对于任何一个业务场景复杂的前端应用以及经过多次迭代之后的产品来说都是必经之路。组件化要做的不仅仅是表面上看到的模块拆分解耦,其背后还有很多工作来支撑组件化的进行,例如结合业务特性的模块拆分策略、模块间的交互方式和构建系统等等。

三、基于Vue和Uni-App的Excel组件

随着数据驱动时代的到来,数据的处理和展示变得越来越重要。为了满足这一需求,我们需要一种简单、高效且可扩展的数据处理和展示方式。这就是我们今天要介绍的基于Vue和Uni-App的自定义表格组件Excel组件。附完整示例源码下载地址:https://ext.dcloud.net.cn/plugin?id=12705

1. 设计

Excel组件采用了自适应布局设计,可以根据不同的屏幕尺寸自动调整表格的列宽,以达到最佳的显示效果。这种设计不仅使得表格在各种设备上都能保持良好的视觉效果,而且还提高了数据处理的效率。

2. 实现

Excel组件的实现包括HTML代码部分、CSS样式部分以及JavaScript部分。HTML定义了表格的结构,CSS样式决定了表格的外观,而JavaScript则处理表格的数据和交互行为。  效果图如下:

c6b9c40e7d1d4b69a789b184b3e77c71.png

 

 

#### HTML代码部分 
HTML部分主要包含了表格的定义和视图模式的选择。首先,我们在`<template>`标签中定义了一个包含表格的视图容器。然后,在`<table>`标签中,我们定义了表格的基本结构,包括表头、表行和表尾等部分。最后,通过`<view>`标签和`v-for`指令,我们实现了视图模式的选择。 

<template>
    <view class="content">

        <div class="table">
            <table>
                <!-- 第一行 -->
                <tr>
                    <!-- rowspan行高: 2  colspan列高: 2 -->
                    <td rowspan="2" colspan="2">项目</td>

                    <td colspan="2">{{"2021"}}</td>
                    <td colspan="2">{{"2022"}}</td>
                    <td colspan="2">{{"2023"}}</td>

                </tr>

                <!-- 第二行 -->
                <tr>

                    <td>指标值</td>
                    <td>同比</td>
                    <td>指标值</td>
                    <td>同比</td>
                    <td>指标值</td>
                    <td>同比</td>

                </tr>

                <!-- 第三行 -->
                <tr>
                    <td rowspan="5">公司历年情况</td>
                    <td>营业金额(万元)</td>
                    <td>{{"Num"}}</td>
                    <td>{{"Yoy"}}</td>
                    <td>{{"Num"}}</td>
                    <td>{{"Yoy"}}</td>
                    <td>{{"Num"}}</td>
                    <td>{{"Yoy"}}</td>
                </tr>

                <!-- 第四行 -->
                <tr>
                    <td>营业税额(万元)</td>
                    <td>{{"Num"}}</td>
                    <td>{{"Yoy"}}</td>
                    <td>{{"Num"}}</td>
                    <td>{{"Yoy"}}</td>
                    <td>{{"Num"}}</td>
                    <td>{{"Yoy"}}</td>
                </tr>
                <!-- 第五行 -->
                <tr>
                    <td>营业数量(张)</td>
                    <td>{{"Num"}}</td>
                    <td>{{"Yoy"}}</td>
                    <td>{{"Num"}}</td>
                    <td>{{"Yoy"}}</td>
                    <td>{{"Num"}}</td>
                    <td>{{"Yoy"}}</td>
                </tr>
                <!-- 第六行 -->
                <tr>
                    <td>供应商数量(个)</td>
                    <td>{{"Num"}}</td>
                    <td>{{"Yoy"}}</td>
                    <td>{{"Num"}}</td>
                    <td>{{"Yoy"}}</td>
                    <td>{{"Num"}}</td>
                    <td>{{"Yoy"}}</td>
                </tr>
                <!-- 第七行 -->
                <tr>
                    <td>供应商稳定性(%)</td>
                    <td>{{"Num"}}</td>
                    <td>{{"Yoy"}}</td>
                    <td>{{"Num"}}</td>
                    <td>{{"Yoy"}}</td>
                    <td>{{"Num"}}</td>
                    <td>{{"Yoy"}}</td>
                </tr>

            </table>
        </div>

    </view>
</template>

 
#### CSS样式 
CSS样式部分主要负责表格的样式设计。我们使用了flex布局来实现自适应布局,同时也定义了表格的基本样式,包括边框、背景色、字体大小等。此外,我们还定义了表格的行号、表头和表尾等特殊样式。 

<style scoped>
    .content {
        display: flex;
        flex-direction: column;

    }

    .table {
        margin: 0px 10px;
        width: calc(100vw - 20px);
        text-align: center;
        background-color: white;
    }

    .table table {
        border-right: 1px solid #000;
        border-bottom: 1px solid #000;
        /* 设置边缘间距0 */
        border-spacing: 0;
        /* 用于表格属性, 表示表格的两边框合并为一条 */
        border-collapse: collapse
    }

    .table table td {
        border-left: 1px solid #000;
        border-top: 1px solid #000;
        text-align: center;
        font-size: 12px;
        font-weight: bold;
        border-right: 1px solid #000;

    }

    .table table tr td {
        width: 12.5%;
    }

    .table table tr:first-child {

        background-color: rgb(204, 236, 255);
    }

    .table table tr:nth-child(2) {

        background-color: rgb(204, 236, 255);
    }
</style>

在实现原理中,我们的自定义表格组件Excel采用了自适应布局设计,可以根据不同的屏幕尺寸自动调整表格的列宽,以达到最佳的显示效果。这种设计不仅使得表格在各种设备上都能保持良好的视觉效果,而且还提高了数据处理的效率。

此外,我们的Excel组件还具有很好的扩充性。用户可以根据自己的需求,自由地添加或删除表格的列,以及修改每列的数据类型和格式。这种灵活性使得Excel组件能够适应各种复杂的数据处理和展示场景。

总的来说,我们的自定义表格组件Excel是一种简单、高效且可扩展的数据处理和展示方式。它不仅能够自动调整表格的列宽以适应不同的屏幕尺寸,而且还具有很好的扩充性。无论你是在开发一个大型的数据分析项目,还是在构建一个小型的业务系统,Excel组件都能够为你提供强大的支持。

3. 优势与应用场景

Excel组件具有简单、高效、可扩展等优点,适用于任何需要处理和展示大量数据的应用场景。

四、总结与展望

通过组件化开发,我们可以将复杂的系统分解为一系列简单的组件,这不仅提高了开发效率,降低了维护成本,而且使得我们的应用更加灵活,能够更好地适应不断变化的需求。基于Vue和Uni-App的Excel组件是一种高效、可扩展的数据处理和展示方式,适用于各种需要处理大量数据的应用场景。

在未来的开发中,我们可以进一步优化和扩展Excel组件,例如增加新的数据操作功能、优化表格渲染性能、提供更多的自定义配置项等。同时,我们也可以将这个组件应用到更多的场景中,例如数据统计、决策分析、可视化报告等。通过不断地优化和扩展,我们可以使Excel组件成为一个更加强大、灵活的数据处理和展示工具,为我们的开发带来更多的便利和效益。

 

参考文献

  1. “前端开发最佳实践”. 电子工业出版社. 2016.
  2. “Vue.js权威指南”. 机械工业出版社. 2017.
  3. “Uni-App开发者手册”. dcloud公司. 2021.

阅读全文下载完整代码请关注微信公众号: 前端组件开发

d848d5658a07453c843277846948c608.png

 

 

 

 

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

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

相关文章

开源大数据集群部署(二十一)Spark on yarn 部署

作者&#xff1a;櫰木 1 spark on yarn安装&#xff08;每个节点&#xff09; cd /root/bigdata/ tar -xzvf spark-3.3.1-bin-hadoop3.tgz -C /opt/ ln -s /opt/spark-3.3.1-bin-hadoop3 /opt/spark chown -R spark:spark /opt/spark-3.3.1-bin-hadoop32 配置环境变量及修改配…

大话设计模式-装饰器模式

大话设计模式书中&#xff0c;作者举了一个穿衣服的例子来为我们引入装饰器模式。 概念 定义 装饰模式在书中的定义是&#xff1a;动态地给一个对象添加一些额外的职责&#xff0c;就增加功能来说&#xff0c;装饰模式比生成子类更灵活。 这句话直接去理解可能会有点抽象&#…

有没有手机上使用的库存软件

库存软件是一种仓库的信息管理系统&#xff0c;它主要针对出库与入库这些数据进行管理&#xff0c;传统的库存管理都是在电脑上安装一个专门的数据库管理系统进行管理&#xff0c;这也是一种比较成熟的管理方式&#xff0c;那么有没有手机上使用的库存软件。 手机上使用的库存软…

学习Python先从了解Python开始

Python是一种高级编程语言&#xff0c;它的语法简洁易读&#xff0c;功能强大&#xff0c;应用领域广泛。Python不仅适用于数据科学、机器学习、Web开发等领域&#xff0c;还可以用于自动化脚本编写、游戏开发等。在本文中&#xff0c;我们将探讨Python的特点、应用领域以及未来…

搭建HBase2.x完全分布式集群(CentOS 9 + Hadoop3.x)

Apache HBase™是一个分布式、可扩展、大数据存储的Hadoop数据库。 当我们需要对大数据进行随机、实时的读/写访问时&#xff0c;可以使用HBase。这个项目的目标是在通用硬件集群上托管非常大的表——数十亿行X数百万列。Apache HBase是一个开源、分布式、版本化的非关系数据库…

Echarts-丝带图

Echarts-丝带图 demo地址 打开CodePen 什么是丝带图&#xff1f; 丝带图是Power BI中独有额可视化视觉对象&#xff0c;它的工具提示能展示指标当期与下期的数据以及排名。需求&#xff1a;使用丝带图展示"2022年点播订单表"不同月份不同点播套餐对应订单数据。 …

STM32直接存储器存取DMA

前提知识&#xff1a; 1、STM32F103内部存储器结构以及映射 STM32F103的程序存储器、数据存储器、寄存器和IO端口被组织在同一个4GB的线性地址空间内。数据字节以小端模式存放在存储器中。即低地址中存放的是字数据的低字节&#xff0c;高地址中存放的是字数据的高字节 可访问…

k8s部署Eureka集群

部署有状态负载 镜像配置&#xff1a; 环境变量如下&#xff1a; AUTHENTICATE_ENABLEtrue JAVA_OPTS-Dauth.userName账号 -Dauth.password密码 MY_POD_NAMEmetadata.name BOOL_REGISTERtrue BOOL_FETCHtrue APPLICATION_NAME负载名称 EUREKA_INSTANCE_HOSTNAME${MY_POD_NA…

Java基础之JVM基础调优与常见问题

常见命令 以下命令的介绍&#xff0c;全部在jdk8环境下运行的&#xff1b; jps ☆☆☆☆☆ 查看当前运行的进程号&#xff1b; jmap ☆☆☆ jmap命令可以查看jvm的内存信息&#xff0c;class对应的实例个数以及占用的内存大小 jmap -histo 查看当前java进程 [rdVM-8-12-c…

光伏无人机勘探技术应用分析

光伏无人机勘探与传统勘探想必&#xff0c;具有智能化作业、测控精度高、环境适应性强等明显优势&#xff1b;卫星勘探辅助其能更快速甚至实时完成测绘拼图&#xff1b;在进行勘察时&#xff0c;可根据需要自由更换机载设备&#xff1b;自动诗经建模使数据更直观&#xff0c;工…

Python 基于docker部署的Mysql备份查询脚本

前言 此环境是基于docker部署的mysql&#xff0c;docker部署mysql可以参考如下链接&#xff1a; docker 部署服务案例-CSDN博客 颜色块文件 rootbogon:~ 2024-04-18 16:34:23# cat DefaultColor.py ######################################################################…

stm32二刷-GPIO

一 什么是 GPIO: GPIO(general porpose intput output), 通用输入输出端口 . 二 我们先认识芯片控制 GPIO 输出控制。 2.1LED 硬件原理如图&#xff1a; 当电流从这根电线流通&#xff0c; LED 亮。当电流不通过这根电线&#xff0c; LED 灭。 上面 PF** &#xff0c;芯片电…

如何安全、高速、有效地利用IP代理爬取数据

陈老老老板&#x1f9d9;‍♂️ &#x1f46e;‍♂️本文专栏&#xff1a;生活&#xff08;主要讲一下自己生活相关的内容&#xff09;生活就像海洋,只有意志坚强的人,才能到达彼岸。 &#x1f934;本文简述&#xff1a;如何安全、高速、有效地利用IP代理爬取数据 &#x1f473…

HTX亮相迪拜Blockchain Life 2024:推动加密应用广泛落地

4月15-17日&#xff0c;HTX独家赞助于迪拜举办的Blockchain Life 2024峰会注册处&#xff0c;并以峰会蓝宝石赞助商身份亮相展区。 作为全球领先的头部交易所&#xff0c;HTX致力于推动区块链技术的创新与发展。此次赞助顶级加密峰会Blockchain Life 2024&#xff0c;不仅是对…

微信小程序酒店选择日期和入住人数(有效果图)

效果图 app.vue onLaunch:function(options){this.defaultcache()}defaultcache(){// 入住信息缓存var arr this.getDateTime();var ReserVation {reservType:0,//1 人数 2日期InCheckin:{},//入离日期peopleArr:[{title:成人,num:2},{title:儿童,num:0},{title:宝子,num:1…

外包干了6天,技术明显退步。。。

我是一名大专生&#xff0c;自19年通过校招进入湖南某软件公司以来&#xff0c;便扎根于功能测试岗位&#xff0c;一晃便是近四年的光阴。今年3月&#xff0c;我如梦初醒&#xff0c;意识到长时间待在舒适的环境中&#xff0c;已让我变得不思进取&#xff0c;技术停滞不前。更令…

Windows:web端UI自动化=python+selenium+pycharm框架

本篇写怎么写一个UI自动化代码。mac和Windows是一样的 都是这样写 不过&#xff0c;习惯用Windows了 如果python没有安装可以看我另一篇安装python的教程 先安装python先 下载完python 下载pip 1 安装pip $ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 下载…

k8s配置configmap指定到容器的指定文件

我们需要将名称为walletkey.properties的文件做成configmap&#xff0c;然后将walletkey.properties文件单独挂载出来到/data/walletkey.properties&#xff0c;且不能覆盖/data目录&#xff0c;具体如下 1、创建configmap configmap文件内容 其中walletkey.properties: >-引…

统一SQL-支持CHAR和VARCHAR2 (size BYTE|CHAR)转换

统一SQL介绍 https://www.light-pg.com/docs/LTSQL/current/index.html 源和目标 源数据库&#xff1a;Oracle 目标数据库&#xff1a;Postgresql&#xff0c;TDSQL-MySQL&#xff0c;达梦8&#xff0c;LightDB-Oracle 操作目标 在Oracle中的CHAR和VARCHAR2数据类型&…

【STM32HAL库】外部中断

目录 一、中断简介 二、NVIC 1.寄存器 2.工作原理 3.优先级 4.使用NVIC 三、EXTI 1.简介 2.AFIO&#xff1a;复用功能IO&#xff0c;主要用于重映射和外部中断映射配置​编辑 3. 中断使用 4.HAL库配置使用 一、中断简介 中断的意义&#xff1a;高效处理紧急程序&#xff0c;不会…