Yanyan Wang
Yanyan Wang
I think it is not a problem of G6, since `useUpdateEffect` is not triggered every time the window size changed in your code. And, it will be better to call...
> useUpdateEffect has useSize(graphRef).width and useSize(graphRef).height as dependencies. Shouldn't the function be triggered every time the container resizes? Maybe you could console sth in the useUpdateEffect to see if it...
Hi, dear user. Since there was no response for a long time, we cannot figure out the answer of the problem you described. If there is new progress, feel free...
看了下,导致栈溢出是 dagre 布局中算法导致。你提供的 demo 中生成的数据是一个超长的链,而在 dagre 中有很多层级递归的算法,因此出现了该问题。如果是一个常见结构的图(不是这样一个超长的链),那么不会报错。在你的 demo 中改了数据生成,不生成超长链  1. 交互上的性能主要取决于图上图元数量,也就是说在大规模数据下,节点/边上图形越多,性能越差。你这里图形还是比较简单的,只有一个 rect + 一个 text 2. imageminimap 对后端计算要求比较高,需要生成和前端渲染出来的一样的图片,如果这个图是相对动态的,那么就要在布局、数据发生变化的时候,重新生成图片。 3. 目前没有,浏览器 performance 火焰图可以看出来性能消耗在哪一块 4. 有一个例子,缩小视图可以看到效果:https://g6.antv.vision/zh/examples/case/treeDemos#decisionTree 5. 目前自动做了视口裁剪,canvas 返回意外的是不会画的
我试了下你的 demo 中,节点数量 3000 个,并且不是一个链的情况下: - 平移画布的时候掉帧明显,其他交互还是比较流畅的。 - 拖拽节点感觉有点卡,应该是因为自定义节点中没有给 text 图形设置 draggable: true (和 attrs 平级),因此如果鼠标拖拽发生在了节点的文本上时,拖拽没有被触发,让人感觉好像是卡住。 - 数据比较大的时候,建议把 animate 关掉。另外图比较大,fitView 也不合适了,fitView 会使得图需要缩放得很小才能全部显示在视口内,导致:1 内容太小看不清;2 图有默认的 minZoom 为 0.02(可以配更小点比如 0.0000001),大图 fitView 可能因为超过改下限而缩放失败。建议在数据比较大的情况下把...
> 请问有什么进展吗,dagre我也遇到了拖拽卡顿问题,我的情况是某一层级下数据量过大,如第二层有1w+nodes 想问下第二层 1w 个节点,用户咋看嘞?我理解可能需要给到用户更有效点的信息,比如渲染之前先做一下 filter 或者合并一些数据,或者分页之类的,起码保证用户看的时候能比较高效地获得信息。 性能的问题也在持续优化中
没有丢失,为图配置 fitView: true,可以看到有些点在很远的地方。这里应该有计算问题,感谢报告我们会尽快修复。可以先使用其它布局 gForce 也可以使用 gpu
欢迎社区 pr
不用加 animate: true,在 layout 配置中加一行:onTick: () => graph.refreshPositions(), 相当于在布局过程中每一次迭代调用一次节点位置更新 因为 force 是引用的 d3 的 force,盲猜 Vue 可能和 d3 的 onTick 有点冲突?
看了一下是最近的小版本有一些问题,刚刚发布了 4.7.1, 不需要配置 onTick,默认带有动画,你们试试。