javascript – 使用D3.js和Immutable.js

前端之家收集整理的这篇文章主要介绍了javascript – 使用D3.js和Immutable.js前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的应用程序中,我使用D3.js进行一些可视化.

现在D3使用可变的本机JavaScript数据结构.

因此,一些数据编组对于使用Immutable.js是必要的.

我也使用Relux和React,所以在我的商店里我管理一个不可变的地图.由于这个Map在每次更改时都会成为新东西,因此我无法将其传递给D3 Force Layout,因为它适用于可变数据,因此每次从头开始重新计算所有内容.

我最终管理了不可变和可变数据结构,但这感觉非常错误.

我发现了一篇文章,Practical Time Series Visualization using D3 + OM,
这似乎触及了主题,并建议使用游标.问题是当我使用JavaScript时它使用Clojure(脚本).

我理解这是非常抽象的没有代码示例,但任何关于工作/同步主题的任何建议将不胜感激和可变数据将不胜感激!

解决方法

我认为没有理由为什么d3.js不适用于immutable.js.在我看来,关键是要了解d3.js如何处理数据,尤其是d3.js数据如何加入工作.

数据连接 – 数据如何绑定到d3.js中的DOM元素

每次选择节点d3.selectAll(‘div’)并与.data([1,3,5,9])连接时,d3.js将比较已存在的div元素是否绑定到数据元素.这是通过评估所选div DOM节点是否具有关联的__data__属性来完成的. data属性由d3.js设置和维护.默认情况下,连接数组中的索引是进入__data__的索引.但您也可以定义一个键函数来覆盖此行为.

进一步阅读

How selections work,其中Mike Bostock解释了d3.js如何通过上述数据绑定机制计算输入,更新和退出选择.

猜你在找的JavaScript相关文章