事件
vgraph 共有三种粒度的事件,满足不同场景下的交互需求。分别是
- 关系图级:对应 Graph 和 TreeGraph 事件。
- 实例级:对应 Node, Edge, Group 实例的事件
- 图形级:对应视觉上组成每种实例的基本图形对象事件
事件会从图形上冒泡到实例再到 graph。例如用户点击了节点上的一个 icon,依次会触发:
- icon 的 click 事件
- node 的 click 事件
- graph 的 node:click 事件
- graph 的 click 事件

vgraph 事件对象组成如下:
const e = { // 事件类型,例如 click, mouseenter type: string; // 作用的目标对象,往往与上述的事件粒度对应 target: Graph | Node | Edge | Group | Shape; // 事件的目标对象相关的节点,就是真正触发事件的图形对象。仅在 graph 事件和实例事件存在 relatedTarget: Shape; // 事件触发时鼠标指针相对于浏览器视口左上角的的水平x坐标和垂直y坐标 clientX: number; clientY: number; // 浏览器原生事件 nativeEvent: Event; // 阻止事件冒泡 stopPropagation(): void; };