自定义节点(#node)
节点插槽用于完全定制节点内容渲染。
1. 各平台写法
- Vue:
#node - React:
<RGSlotOnNode> - Svelte:
slot="node"
2. 插槽参数
常见参数:
node: RGNodechecked?: booleandragging?: boolean
3. 基础示例(React)
<RelationGraph options={graphOptions}>
<RGSlotOnNode>
{({ node, checked, dragging }) => (
<div className="my-node">
<div>{node.text}</div>
<div>Checked: {String(checked)}</div>
<div>Dragging: {String(dragging)}</div>
</div>
)}
</RGSlotOnNode>
</RelationGraph>
4. 关键样式原则
不要只在节点插槽局部 CSS 里定义节点背景/边框语义。
建议通过以下数据字段定义核心外观:
node.colornode.borderColornode.borderWidthnode.borderRadius- 或
RGOptions中的全局默认值
原因:这些值会影响主视图与缩略图的一致渲染。
5. 实践建议
- 按
node.type进行模板分发。 - 插槽负责表现层,业务动作由事件/实例 API 驱动。
- 把业务元数据放在
node.data,避免污染结构字段。