很多人第一次看 Grid,会把它理解成“可编辑 pivot”。这个类比很容易把问题想简单了。
主要参考:
enterprise/web_grid/static/src/views/下相关前端文件
一、Grid 单元格不是普通字段输入框
一个 grid cell 往往代表一段 domain 下的聚合结果,甚至可能对应多条后端记录。因此所谓 inline edit,并不等于“给这格绑定一个字段,再写回去”。
前端真正要解决的是:用户编辑的是这格的总量、增量还是某条代表记录?
二、domain/context 为什么是这类视图的核心
每个单元格都需要稳定地知道自己代表的行列切片和过滤上下文。否则同样一个数值,换一页、换一组、换一个 period 就可能指向完全不同的数据集合。
所以 Grid 前端通常会把 domain/context 当成一等公民,而不是辅助参数。
三、为什么要强调虚拟网格
只要网格规模稍微大一点,前端就不可能一次把所有行列节点都真正渲染出来。虚拟渲染、局部刷新和滚动窗口是可用性的基础。
也正因为如此,Grid 的“可编辑”并不是全表静态 DOM 上绑事件,而是带着缓存、重算和局部刷新的编辑体验。
四、结论
企业版 Grid 的前端难点,不是做一张表,而是让“聚合视图 + 局部编辑 + 大规模滚动”三件事同时成立。
DISCUSSION
评论区