模块:
- cell
- 单元格样式(默认一个style传入,或者用户自定义renderCell)
- text-align
- color
- bg-color
- font-size
- 单元格样式(默认一个style传入,或者用户自定义renderCell)
- row(一行有tr标签包裹,定义cell后基本不怎么需要)
-
Table逻辑
1.变量
横向/纵向(移动端考虑,或者直接全部纵向就好了)
- sticky 列表头
- 需要通过测试看是否支持position:sticky
- 冻结列表头
- DataSource
- columns
- key
- name
- width
- format
- lock
- 表格自己的数据map方便快速读取
2.方法
- 格式化数据(需要根据表格的样式去自行格式化,主要是方便读取)
- 数据源变化时,diff数据源,只修改变化的部分,immer.js
- 计算冻结列头函数
- 把表格分为列头行和内容两部分
- 内容部分向下应偏移列头的高度
- 容器
- 容器的宽高计算
- 监听window的滚动事件,计算偏移和样式
- 计算可以展示的行列数
- 也可通过transform来做
- 渲染行
渲染表头
根据是否有children=》是否可以展开
- 根据key=》是否默认展开
- 缩进=》层级level
- 数据格式化
- 构建树形结构