如果我使用 D3.js 来适度复杂的用户交互相关数据可视化,我应该选择 React 还是 Angular2



All:

作为初学者,我在这里遇到了一些决策痛苦,说我需要使用 D3 构建一个数据可视化应用程序,我有点想知道我应该使用哪个库来处理这些图表绘制(它有点复杂,有很多用户操作,如添加/删除/移动/样式/动画等(,目前这个应用程序是由 Angular1 实现的,而不是模块化的, 此外,当数据增长时,图表绘制会滞后。这就是为什么我正在考虑切换。

现在,我对 Angular2 或 React 都没有太多经验,但我听说它们的性能都非常出色,所以就代码复杂性和性能而言,谁能给我一些具体的建议?

谢谢

我们目前有一个使用ReactJSD3图表的大型JavaScript应用程序。

它的性能非常出色,尽管我们有一个幸运的优势,即不必支持移动设备,因为它是一个企业应用程序。

我想说的一件事是了解 Rereact shouldComponentUpdate方法并为您的容器使用ImmutableJS。我们还实现了 flux 和 WebSocket API,但如果你是 React 的新手,我会尝试获取一个非常简单的d3图表,比如桑基工作,然后从那里开始。

当您实际到达作为 d3 图表的叶节点时,您可以将Immutable数据类型转换为本机对象,但只能将其传递给 d3

它完全可以正常工作,但是我不会在d3管理任何类型的state,请注意不要落入那个陷阱。你想将点击等事件附加到 d3 节点,但你的 React 组件应该处理这些事件而不是 d3。

希望有帮助。

我也用过d3和反应。他们一起玩对我来说非常好,特别是因为 d3 也在 npm 上,并且非常适合编译 react 使用的 jsx 所需的捆绑器。我看不出它的缺点。事实上,http://avocadojesus.com 完全是在 react 和 d3js 中构建的,并使用 Web 音频 API 将数据流式传输到不同的 d3 数据可视化中(所以不要在 safari 中查看,除非你想无聊,哈哈(。

我在项目中使用了 angular1,并且对它的大多数方面都非常满意。我认为它唯一与我不足的地方是在大型ng-repeat映射上。如果你的前端是在考虑用户的情况下构建的,那么你不太可能遇到大的ng-repeat问题(但我可能会避免任何无限滚动的情况,因为将所有这些元素留在dom中的后果可能会导致angular的dom渲染周期出现重大问题(。

我认为 Angular 让我有点失望,只是因为它似乎在平衡中悬而未决了这么久。Angular2 在很多方面都是完全重写的,所以现在学习 angular1 可能会给你带来更多的成长痛苦,因为你显然想要升级。上次我尝试学习 Angular2 时很沮丧,因为他们没有发布任何文档,并且仍然建议不要将其用于任何非实验性的事情。现在它们处于测试阶段,学习起来似乎很安全。如果你觉得勇敢,或者你只是在尝试并深情地思考 angular1,那么 angular2 对你来说是一个不错的选择。适合您的工具应该是您真正喜欢使用的工具,并且这两个项目都有出色的支持文档和社区,因此恕我直言,无论哪种方式都是安全的

如果由我决定,我会坚持做出反应。围绕它建立了一个大型社区,框架非常简单。它的简单性才是真正让它发光的原因。它以正确的方式训练您收集、分发和更新数据,以影响所有组件的状态。如果你勇敢且熟练,我建议你也深入研究 flux 框架,因为它相当复杂,但可以让您看到这样一个简单的组件架构在通过一组复杂的数据存储和操作提供信息时可以做得有多好。从概念上讲,它对我来说非常有启发性,它为我现在编写的所有代码提供了信息。我的铁轨最近甚至变得不稳定哈哈>.<</p>

最新更新