X6 icon indicating copy to clipboard operation
X6 copied to clipboard

节点和线在拖拽过程中,不实时更改画布数据,只渲染一个中间过程虚拟节点

Open MrMengJ opened this issue 2 years ago • 3 comments

功能描述

如下图所示,节点和线在拖拽过程中,不实时更改画布数据,只渲染一个中间过程虚拟节点,减少中间状态对数据的持续影响,也能提升性能

图形拖拽虚拟图形

期望解决方案

有没有好的解决思路

MrMengJ avatar Jul 05 '23 03:07 MrMengJ

https://github.com/lloydzhou/x6-hooks

可以参考我这个地方的使用方法:

  1. 将x6的graph当作一个“受控”的组件
  2. 实际数组总是维护在自己外层组件的state里面。
  3. 在x6内部做交互的时候,总是放弃直接更改x6画布内的元素,而是通过回调去更新外层组件的state数据。
  4. state数据更新后,会自动将元素更改体现到画布上面

例如:

  1. 生成边的时候,通常validateEdge会返回true,确保交互式连接的边添加到画布。
  2. 现在只要重写validateEdge,需要添加边的时候,触发外层组件的callback更新state数据,往state内部添加一条边,当前的validateEdge永远返回false即可。

lloydzhou avatar Jul 06 '23 05:07 lloydzhou

这个功能我们后续会加上,主要是因为如果节点所连的边比较多的场景下,会出现移动卡顿现象。之前做过一些尝试

NewByVector avatar Jul 10 '23 03:07 NewByVector

这个功能我们后续会加上,主要是因为如果节点所连的边比较多的场景下,会出现移动卡顿现象。之前做过一些尝试

请问一下有排版计划了吗? 如果最近没有更新计划,这个想法测试场景覆盖怎么样,可以直接按这个思路开发不

America-first-melon avatar Dec 01 '23 08:12 America-first-melon