React渲染拓扑图的性能问题?

从数据库获取节点和链路的数据绘制拓扑图
节点上1000个左右,链路几百条的情况。
绘图是用D3来画的。
项目前端采用了React。

1 我现在的实现方法是
在componentDidMount中获取节点 链路数据,进行数据处理封装到可绘制的数据,然后通过D3的数据绑定添加相应的节点链路和组元素(svg元素)。所有元素的事件绑定操作也都是在componentDidMount中做事件绑定处理。
这样感觉不是很好,至少componentDidMount中的代码量会很多。

2 如果通过React做数据绑定的话 有个担心就是元素内容频繁变动引起state绑定值的频繁更改,频繁render() 会不会导致卡呢(性能问题)。比如说节点拖拽会引起节点坐标的在draging过程中不断更新就会引起节点state上的坐标值不断更改和rerender(),因为拓扑节点链路比较多,这个过程(reRender())性能会不会出现问题呢。

这种场景下,如果采用React的数据绑定会不会出现性能问题呢?
先问下, 自己有空去实践下。

阅读 5.8k
1 个回答

第一个问题很好解决,如果componentDidMount()里面代码量过多,可以封装成函数再调用。

第二个问题属于及时渲染,对性能上肯定有影响,用react至少可以避免直接对dom做操作,记得国外有一个黑客攻防数据监测网站,我每次在浏览器上打开都会很卡。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题