Skip to content
目录

性能优化策略

图编辑器性能 = 少渲染节点 × 轻量节点组件 × 稳定引用 × 批量变更


1. 节点级

策略说明
React.memo 自定义 node避免父 store 更新导致无关节点重绘
稳定 nodeTypes / edgeTypes放组件外或 useMemo
节点内少订阅整图用 props 传入必要字段
onlyRenderVisibleElements只渲染视口内(视版本 API)

2. 数据级

策略说明
applyNodeChanges 批量一次拖拽一轮 changes
避免每次 setNodes([...nodes]) 全拷贝用 change API
大图的 id 索引关注版本是否优化 lookup

3. 边与路径

  • 边数极大时简化 type、减少动画。
  • 复杂路径计算放 worker 或降级 step 线。

4. 受控模式陷阱

父组件每次 render 新建 nodes 数组 → 全图刷新。应 只在 change 时更新


5. 与 Zustand 通用建议一致

selector 细粒度、useShallow 多字段打包;见 Zustand 07


6. 社区议题(参考)

  • PR #3668 NodeRenderer 优化
  • Issue #4239 虚拟化 RFC
  • Issue #4976 批量更新时序

7. 总结

先 Profiler 看是 节点组件慢 还是 更新太频;再对症 memo / 可见区 / 变更合并。

MIT License.