首页 > 解决方案 > d3.js v4 和 v5 的兼容性

问题描述

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

标签: javascriptd3.jsversioning

解决方案


D3 使用语义版本控制约定。因此,对于给定的 D3 版本,5.15.1例如,您有三个数字:第一个是主要版本,第二个是次要版本,最后一个是补丁版本。仍然根据semver.org,一个人必须增加......

  1. 进行不兼容的 API 更改时的主要版本,

  2. 以向后兼容的方式添加功能时的次要版本,以及

  3. PATCH 版本,当您进行向后兼容的错误修复时。

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

在比较 D3 v4 和 v5 时,情况并非如此:一些代码会中断(但不是全部,下面会详细介绍)。这些是不起作用的主要方法/迷你库(和属性):

  • d3-请求 ( d3.csv, d3.json,d3.tsv等等...)
  • d3.queue
  • 颜色数组之类的d3.schemeCategory20...

如果您的 D3 v4 代码不使用其中任何一个,您可以使用它来引用 D3 v5。


推荐阅读