gpt4 book ai didi

javascript - d3 中何时使用 Selection.data(...).something() 与 Selection.merge().something() ?

转载 作者:行者123 更新时间:2023-12-01 03:29:43 33 4
gpt4 key购买 nike

new data is joined 时,我对 d3 中 UPDATE 和 MERGE 之间的区别感到困惑到一个选择。

ENTER 很容易;它适用于新元素。

退出很容易;它适用于旧数据中的元素。

我如何知道何时使用 UPDATE 与 MERGE?

var thingies = d3.selectAll('.mythingy')
thingies.data(newData).call(handle_update) // UPDATE
.enter().call(handle_enter) // ENTER
.merge().call(handle_merge) // MERGE
.exit().call(handle_exit) // EXIT

最佳答案

TLDR:更新在概念上是指一组元素; .merge() 是一种可用于组合输入和更新选择的方法。

更新是一个概念,指的是数据更改之前位于 DOM 中并在数据更改后保留在那里的 DOM 元素(即链接中维恩图的中间部分)。但是,没有 .update() 方法 - 您可以使用 .selectAll() 获取更新选择。

这可能会导致一些冗余,即您将相同的属性/样式应用于刚刚输入的元素(.enter() 选择)并且已经存在。 D3v4 中引入的 .merge() 方法提供了一种解决方案,您可以在其中选择输入和更新元素。

仍然可以在不使用.merge()的情况下执行更新过程,并且在某些情况下,为输入和更新选择编写单独的语句可能仍然有意义。

关于javascript - d3 中何时使用 Selection.data(...).something() 与 Selection.merge().something() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44597178/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com