对数据问题的详细解决方案(),()()进入和退出在d3.js

对数据问题的详细解决方案(),()()进入和退出在d3.js
D3是广泛使用的,现在它已经成为一个主流的数据可视化工具。当你刚刚接触d3.js,感觉最强大的地方是数据的(),(),()进入退出

在我接触了一段时间后,有了一些了解,我只是说说我的理解。

(数据)

先看一个例子。

执行代码:
d3.select(体),SelectAll(p)。数据({ 1, 2, 3 })
这里,数据()用于将数据绑定到选定的DOM元素。然后,我们可以对这些数据做一些相关的操作,比如设置元素的宽度等。

表面上,什么也看不到。但在内部,它增加了一个__data__属性对应的DOM元素,它可以被document.getelementsbytagname(P){ 0 }。__data__。

进入和退出()()

这两种操作令人费解,因为很难从单名的名称推断出它们的作用

在上面的数据()的例子中,我们的DOM元素与数据的数量相同,但是如果不是相同的,我们应该怎么做呢

输入()和出口()用于处理这种情况

进入()

当DOM的数量小于数据的数量,或者根是没有的时候,我们通常希望程序帮助创建

在下面的示例中,我们不预先提供DOM元素:

继续实施:
d3.select(体),SelectAll(p)。数据({ 1, 2, 3 })

与上面的示例不同,我们可以继续执行样式(宽度),但我们不能这样做,因为我们不选择DOM元素,并且需要先创建。

输入()用于在绑定数据后选择DOM元素的缺失部分。我们可能会想,既然它是缺少的部分,该如何选择呢这里我们需要一点想象力,想象我们选择了不存在的东西,我们可以称之为虚拟DOM或占位符(占位符)。

输入()只是一个选择,实际上并没有添加所需的DOM元素。因此,在输入()之后,DOM元素的实际创建通常是用附加()执行的。

因为这个,我们使用d3.select(体),SelectAll(p)。数据({ 1, 2, 3 }),输入(),进入()。追加(P)可以自动根据数据创建所需的DOM元素。

进入的处理方法

如果没有足够的元素,那么处理方法通常使用附加()来添加元素:
var数据集= { 3, 6, 9 };
var p = d3.select(体),SelectAll(P);
绑定数据在、更新和输入后获得。
VaR更新= p.data(数据集);
无功输入= update.enter();
流程的更新部分是直接修改内容。
Update.text(功能(D){ return d;});
流程的输入部分是添加元素来修改内容。
enter.append(P)
文本函数(d){返回d;});

在这种情况下,主体中的p元素只有一个元素,但数据有三个,因此输入部分包含两个数据的过量。处理冗余数据的方法是与它相对应的附加元素。在处理之后,正文中有三个P元素,它们是:



通常,阅读后从服务文件中,有大量的数据,但没有元素在Web page.d3这是你可以选择一个空的设定了一个非常重要的特征,然后使用回车()。追加()在插入元素的形式。假设没有P元体现在,看看下面的代码:
数据10,20,30,40,50 } = { var;
VaR的身体= d3.select(体);
Body.selectAll(P) / / P选择所有的身体,但不是P,所以我选择了一个空集合
数据(数据集)/数据集绑定数组
输入(输入)返回部分
添加()
文本(函数(d){返回d;});
上面的代码中,所有的选择一个空集,那么数据绑定。因为选择集是空的,通过返回的数据更新的部分()是空的,然后进入()和附加()被称为使每个数据元素P对应于它。最后,改变的P元素的内容。处理输入部分是使用附加的常用方法()添加元素。

(退出)

与输入()相反,出口()用于选择比数据更重要的DOM元素。

在下面的示例中,我们提供多个DOM元素:


这一次很容易理解,因为它是更多,然后是实际存在,那是最后一次。

当你出来时,我们可以使用.删除()来移除这些元素,代码如下所示:
d3.select(体),SelectAll(p)。数据({ 1, 2, 3 })。Exit()删除();

出口加工方法

有许多与数据不符的元素。对于这样的元素,通常的做法是使用删除()来删除元素。假设在正文中有5个P元素,请看下面的代码:
var数据集= { 10, 20, 30 };
var p = d3.select(体),SelectAll(P);
绑定数据在更新部分和退出部分后获得。
VaR更新= p.data(数据集);
VaR退出= update.exit();
更新的部分是通过修改内容来处理的。
Update.text(功能(D){ return d;});
流程的 /退出部分是要删除的。
Exit.remove();
在这个代码中,处理退出部分的方法是删除。删除后,网页中不会有多余的P元素。

参考材料

连接思考——由Mike Bostock
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部