哪个库用于绘制简单的图形节点,反应中的链接?

use*_*604 6 d3.js cytoscape.js reactjs

我看到react-d3。我最后一次将它用于图表(React之前),直到需要调整图例,边距和轴上的标签的布局之前,它都很棒。在d3之上使用c3和其他库使事情变得更加容易。

现在,我需要绘制图形-随机节点/链接/组图。我看到了强制布局-但在react-d3中看不到简单的图形。我看了看Cytoscape-它没有正式的React版本,似乎正在开发中(我在堆栈溢出时发现了一个包装器,但是我一直在犹豫使用它,直到细胞小组发布它为止。

因此,问题是:-如果我使用react-d3,在哪里可以找到一些示例(不是图表而不是“强制”布局)-如果直接使用react-d3有点太底层了,那么在d3之上是一个好的库,现在可用于React?(为了简化简单的库,我愿意牺牲d3的超灵活性)。

任何帮助和指点是最欢迎的。

谢谢。

ahm*_*sny 6

上面的资源已有 4 年历史,因此需要更新。我会使用react-digraphreact-flow - 两者似乎都得到了很好的支持。


Md.*_*med 5

你可以看看下面的库,

https://github.com/lavrton/react-konva

https://github.com/Flipboard/react-canvas

https://github.com/reactjs/react-art

https://github.com/alex3165/react-leaflet-draw

https://github.com/PaulLeCam/react-leaflet

  • 查看上面的链接,react-konva 最接近我正在寻找的内容。然而,它是一个具有简单形状和线条集合的低级库。这意味着我需要定义/创建一个“组件”及其数据结构才能绘制图形(我的是非循环图形)。一个内置支持图形(指定为 json)和将事件附加到图形中的项目的库,该库将树及其事件作为一个整体管理,而不是要求我从基本组件组成。然而,您的参考是一个很好的开始!谢谢你。 (2认同)

max*_*anz 5

Tl; dr:尽可能避免react-*包装包(用于外部库)。除了基本用例之外,他们以后会倾向于限制你。

没有任何理由等待用于 Cytoscape 的 React 适配器。该适配器是为一些想要创建非常简单(主要是)仅可视化的人而构建React.Component的——就像一个与科学出版物一起出现的简单页面。

一般来说,那些react-*用于外部库的包往往属于两类之一,(1) 简单库或 (2) 复杂库。对于 (1),react-*如果它包装的 lib 有一个小的功能集要覆盖,那么这个包就可以了。对于 (2),这些包装器包往往只覆盖 API 的一小部分。对于 (1) 和 (2),您取决于包装器是最新的——或者被锁定在功能之外。

随着您的应用程序得到越来越多的开发,您是否愿意冒着不得不重写的风险,因为您的应用react-*程序与您的应用程序已经过时的包装器包高度耦合?

总的来说,使用react-*包装器包并没有太多好处。特别是对于像您这样的更复杂的情况,您只需限制可以使用的功能以及如何使用它们。

无论你选择什么图形库——无论是 Cytoscape 还是其他——我建议你只React.Component根据你的应用程序的需要编写你自己的。

react-*我个人而言,我唯一会使用的包是直接向 React添加特性的包,比如动画、路由等。