d3.js 的 v4 和 v5 之间的兼容性

Compatibility between v4 and v5 of d3.js

我要开始学习 d3,但我只有一个 v4 教程可用,所以我想知道我是否能够在 v5 中使用我在 v4 中学到的知识,或者它有很大的不同。

D3 使用semantic versioning convention. Therefore, for a given D3 version, like 5.15.1 for instance, you have three numbers: the first one is the major version, the second one is the minor version and the last one is the patch version. Still according to semver.org,必须递增...

  1. MAJOR version when you make incompatible API changes,

  2. MINOR version when you add functionality in a backwards compatible manner, and

  3. PATCH version when you make backwards compatible bug fixes.

因此,我们不只计算 数量 的更改来确定给定代码是否适用于给定版本。例如,与 v5 和 v4 相比,D3 v5.8 引入了更多新功能(与 D3 v5.7 相比)。为 D3 v5.8 编写的代码在引用 D3 v5.7 时可能会中断。那么,为什么不将 D3 v5.8 视为新的主要版本?因为 all 为 D3 v5.7 或更早版本编写的代码可以引用 D3 v5.8。所有这些 D3 v5.8 更改都以 “向后兼容的方式”发生

将 D3 v4 与 v5 进行比较时,情况并非如此:一些 代码会中断(但不是全部,更多内容见下文)。这些是不起作用的主要 methods/mini-libraries(和属性):

  • d3-请求(d3.csvd3.jsond3.tsv 等...)
  • d3.queue
  • 颜色数组,如 d3.schemeCategory20 等...

如果您的 D3 v4 代码不使用任何这些代码,您可以引用 D3 v5 使用它。