组件化的可编辑数据表格

        首先我们进行了可编辑表格的设计,主要思路是将表格功能模块化,我们将表格分解为表头、表身和操作栏三个模块,分别进行组件实现。表头组件包括表头标题和表头列组件,表身组件包括表格数据列表和表格编辑单元格组件,操作栏组件包括新增、编辑、删除等操作按钮组件和分页组件。这样,通过将表格功能模块化,可以更加方便灵活地定制和扩展表格功能,本次可编辑表格的样式通过css实现,通过简单的样式设计,将想要的图形或者不同的板块放在不同的地方。

        设计思路:
在设计组件化的可编辑表格时,我们主要考虑到以下几个方面:

1. 界面交互:用户需要通过明确的交互方式来操作表格并进行数据的编辑和查询;思考用户是否需要某些功能,太繁琐的交互容易产生bug尽量简介的同时能够完成要求的功能。

2. 可扩展性:当需求发生变化时,表格需要能够灵活地进行修改和增强,并能够方便地加入新的功能和模块;

3. 数据完整性:表格需要能够检验并确保输入数据的合法性和完整性,同时需要进行数据校验和数据范围验证;大多数的bug就产生在数据里面,有时候会出现非常理的数值或者数值出现错误。

4. 数据查询和过滤:表格需要可以进行数据的查询和过滤,用户可以根据需求自由选择查询条件。

        核心代码及注解:

        css样式:

<style>
      *{
        list-style: none;
        font-size: 25px;
      }
      #table{
        width: 1200px;
        margin: 0 auto;
        border: 1px solid black;
        margin-top: 30px;
        border-collapse: collapse;
        text-align: center;
      }
      th{
        border: 1px solid black;
      }
      tbody td{
        border: 1px solid black;
      }
      table .add,
      table .dec,
      table .del {
        display: inline-block;
        width: 20px;
        height: 20px;
        cursor: pointer;
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center center;
      }
      table .num {
        display: inline-block;
        width: 57px;
        margin: 0 18px;
        height: 39px;
        line-height: 39px;
        border: 1px solid #b0b0b0;
        background: #d4d4d4;
      }
      table .del{
        background-image: url(image/la.png);
      }
      table .add {
        background-image: url(image/s2.png);
      }
      table .dec {
        background-image: url(image/s1.png);
      }
</style>

add事件:

 for (var i = 0; i < oAdds.length; i++) {
          oAdds[i].onclick = function () {
            this.previousElementSibling.innerText =
              parseInt(this.previousElementSibling.innerText) + 1;
            changeMoney();
            changeTotal();
          };
        }

add事件通过一个for循环,对this.previous前一个数值进行增加,使得后面的数值进行加一,就可以通过修改表格内容进行修改需要增加的数量。

计算金额的事件:

function changeMoney() {
          var oListNumber = document.getElementsByClassName("add").length;
          var oNums = document.getElementsByClassName("num");
          var oMoneys = document.getElementsByClassName("money");
          var oPers = document.getElementsByClassName("per");
          var oPerSpan = []; //单价
          var oMoneySpan = []; //金额
          for (var i = 0; i < oListNumber; i++) {
            oPerSpan[i] = oPers[i].getElementsByTagName("span")[0].innerText;
            oMoneySpan[i] = oMoneys[i].getElementsByTagName("span")[0];
            oMoneySpan[i].innerText =
              parseInt(oNums[i].innerText) * parseInt(oPerSpan[i]);
          }
        }

通过add事件或dec事件伴随金额改变事件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vben是一款基于Vue.js框架开发的前端组件库,提供了丰富的可视组件和工具,方便开发人员快速构建数据可视的网页应用。在vben中,大数据量可编辑表格可能会出现卡顿的情况。 首先,大数据量意味着表格中包含的数据量非常庞大,可能达到成千上万条记录。在渲染这么大量的数据时,就需要消耗较多的计算和内存资源。如果浏览器或设备的性能不够强大,就可能导致表格在进行数据更新和渲染时出现卡顿的现象。 其次,可编辑表格需要实时监听用户的操作,并及时更新表格中的数据。这个过程也需要进行数据的计算和更新,当数据量较大时,这个过程就会变得更加耗时,从而导致表格的卡顿。 为了解决这个问题,可以采取以下的优措施: 1. 数据分页加载:将大数据量分为多个页面进行加载,每次只加载当前页面所需的数据,这样可以降低渲染负担和提高数据更新的速度。 2. 虚拟滚动:只渲染当前可见的部分数据,随着用户滚动表格,再动态加载其他数据。这样可以减少DOM元素的数量,优性能。 3. 合理使用缓存:合理使用缓存机制,尽可能减少重复的计算和请求,提高数据的读取和更新效率。 4. 优算法和数据结构:通过优算法和数据结构,减少不必要的计算和数据操作,提高整体的性能。 总之,处理大数据量可编辑表格卡顿的问题需要综合考虑各种因素,包括数据量、设备性能、算法优等。通过合理的优措施,可以提升表格的更新和渲染效率,降低卡顿的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值