JointJS中Element与Cell的区别是什么?
JointJS 中 Elements 与 Cells 的核心区别
从属关系差异
JointJS 画布(joint.dia.Graph)中所有可渲染对象的顶层基类是 Cell,Element 是 Cell 拆分出的两个核心具象子类之一,另一个子类是用于表示节点间连线的 Link。
简单总结:所有 Element 都属于 Cell 类型,但 Cell 类型还包含不属于 Element 的 Link 连线对象。
功能定位差异
- Cell:作为通用抽象层存在,封装了所有画布对象共有的基础能力,包括唯一ID管理、层级父子关系绑定、自定义属性存储、数据变更事件触发、序列化/反序列化逻辑,本身不会被直接实例化使用。
- Element:专门对应画布上的节点类实体,比如基础矩形、圆形、自定义业务卡片、流程节点等,独有的属性和方法都和节点展示逻辑相关,包括位置(
position)、尺寸(size)、形状样式设置等,是开发中会高频实例化的类型。
实际调用场景区别
获取画布所有对象(包含节点+连线):调用
graph.getCells()
仅获取画布所有节点(排除连线):调用graph.getElements()
内容的提问来源于stack exchange,提问作者Kolban
相关产品推荐
相关产品推荐

