25|表格:如何设计一个表格组件?
大圣
该思维导图由 AI 生成,仅供参考
你好,我是大圣。
上一讲我们实现了树形组件,树形组件的主要难点就是对无限嵌套数据的处理。今天我们来介绍组件库中最复杂的表格组件,表格组件在项目中负责列表数据的展示,尤其是在管理系统中,比如用户信息、课程订单信息的展示,都需要使用表格组件进行渲染。
关于表单的具体交互形式和复杂程度,你可以访问ElementPlus、NaiveUi、 AntDesignVue这三个主流组件库中的表格组件去体验,并且社区还提供了单独的复杂表格组件,这一讲我就给你详细说说一个复杂表格组件如何去实现。
表格组件
大部分组件库都会内置表格组件,这是总后台最常用的组件之一,用于展示大量的结构化的数据。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
《玩转 Vue 3 全家桶》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(8)
- 最新
- 精选
- 海阔天空表格算是elment中比较难的组件了。感觉 Naive Ui 的使用方式配置得比较多,element 让人更好理解一点
作者回复: 我其实也更喜欢naive和ant-design的表格表格实现方式
2021-12-174 - 银太请教下,我是想对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 - AnkhetsinPC端的表格一般带分页2021-12-211
- 海阔天空这代码在哪里2022-10-11归属地:北京
- 落风好家伙,是时候优化一下自己的组件库了2022-04-13
- CrazyMuyang在移动端,如果在页面最低下有一个列表组件需要用虚拟滚动处理,该怎么实现呢。? 我目前了解的实现方案都要有一个固定高度的滚动区域,但这种场景下并不能给这个列表显示区域一个固定高度2022-03-30
- 费城的二鹏我们的项目中,会有超级大的列表,目前用v-for做的,数据多了dom会占用很多内存,可以用虚拟滚动优化。2021-12-19
收起评论