玩转 Vue 3 全家桶
大圣
前百度前端架构师
38321 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 44 讲
玩转 Vue 3 全家桶
15
15
1.0x
00:00/00:00
登录|注册

25|表格:如何设计一个表格组件?

通过 computed 计算需要渲染的数据
控制 top 属性模拟滚动效果
懒渲染
table-footer
table-body
table-header
table
适合使用虚拟滚动做性能优化的组件
虚拟滚动
表格组件的设计
复杂的 DOM 节点
复杂的交互
数据的嵌套渲染
思考题
性能优化
组件设计思路
核心难点
表格组件设计

该思维导图由 AI 生成,仅供参考

你好,我是大圣。
上一讲我们实现了树形组件,树形组件的主要难点就是对无限嵌套数据的处理。今天我们来介绍组件库中最复杂的表格组件,表格组件在项目中负责列表数据的展示,尤其是在管理系统中,比如用户信息、课程订单信息的展示,都需要使用表格组件进行渲染。
关于表单的具体交互形式和复杂程度,你可以访问ElementPlusNaiveUiAntDesignVue这三个主流组件库中的表格组件去体验,并且社区还提供了单独的复杂表格组件,这一讲我就给你详细说说一个复杂表格组件如何去实现。

表格组件

大部分组件库都会内置表格组件,这是总后台最常用的组件之一,用于展示大量的结构化的数据。html 也提供了内置的表格标签,由  <table> 、<thead> 、<tbody> 、<tr> 、<th> 、<td>  这些标签来组成一个最简单的表格标签。
我们先研究一下 html 的 table 标签。下面的代码中,table 标签负责表格的容器,thead 负责表头信息的容器,tbody 负责表格的主体,tr 标签负责表格的每一行,th 和 td 分别负责表头和主体的单元格。
其实标准的表格系列标签,跟 div+css 实现是有很大区别的。比如表格在做单元格合并时,要提供原生属性,这时候用 div 就很麻烦了。另外,它们的渲染原理上也有一定的区别,每一列的宽度会保持一致。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了如何设计一个表格组件,重点讲解了Naive UI和Element3两种风格下的表格组件设计和使用方式。Naive UI的表格组件完全由数据驱动,而Element3的表格组件则通过子元素决定具体数据的展现形式。文章还详细分析了表格组件的扩展和性能优化问题,提出了虚拟列表解决方案来减少计算量,以及对虚拟滚动的优化策略进行了深入讨论。总的来说,本文通过代码示例和对比分析,帮助读者更好地理解了表格组件的设计和使用方法。文章内容涵盖了表格组件设计的复杂性和性能优化的重要性,对于开发人员来说具有很高的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《玩转 Vue 3 全家桶》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(8)

  • 最新
  • 精选
  • 海阔天空
    表格算是elment中比较难的组件了。感觉 Naive Ui 的使用方式配置得比较多,element 让人更好理解一点

    作者回复: 我其实也更喜欢naive和ant-design的表格表格实现方式

    2021-12-17
    4
  • 银太
    请教下,我是想对table封装成xtable,那么在page中使用的时候原来的table的slot就会写到xtable的slot,那table怎么渲染? x-table: <div> <a-table> //<template #bodyCell></template> 原来是在这里写的 </a-table> </div> page: <page> <x-table> <template #bodyCell></template> </x-table> </page>

    作者回复: 看这个需求可以在x-table的slot#bodyCell以slot的形式传递给a-table

    2021-12-17
  • 于三妮
    这里有代码有点看不懂了

    作者回复: 争取后面我再写个简单迷你版,这两讲主要是想让大家感受一下demo级别的组件和实际可用组件的区别

    2021-12-17
  • Ankhetsin
    PC端的表格一般带分页
    2021-12-21
    1
  • 海阔天空
    这代码在哪里
    2022-10-11归属地:北京
  • 落风
    好家伙,是时候优化一下自己的组件库了
    2022-04-13
  • CrazyMuyang
    在移动端,如果在页面最低下有一个列表组件需要用虚拟滚动处理,该怎么实现呢。? 我目前了解的实现方案都要有一个固定高度的滚动区域,但这种场景下并不能给这个列表显示区域一个固定高度
    2022-03-30
  • 费城的二鹏
    我们的项目中,会有超级大的列表,目前用v-for做的,数据多了dom会占用很多内存,可以用虚拟滚动优化。
    2021-12-19
收起评论
显示
设置
留言
8
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部