javascript - d3.js v4 和 v5 的兼容性
问题描述
我将开始学习 d3 并且我只有一个 v4 教程可用,所以我想知道我是否能够在 v5 中使用我对 v4 的学习,或者它有很大的不同。
解决方案
D3 使用语义版本控制约定。因此,对于给定的 D3 版本,5.15.1
例如,您有三个数字:第一个是主要版本,第二个是次要版本,最后一个是补丁版本。仍然根据semver.org,一个人必须增加......
进行不兼容的 API 更改时的主要版本,
以向后兼容的方式添加功能时的次要版本,以及
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。
推荐阅读
- python - Python Camelot-py解析中缺少值
- regex - 字符类中的正则表达式重复范围
- html - Visual Studio Code:在 CSS 中选择类后在浏览器中突出显示对象边框
- mysql - 成功完成 MySQL 触发器后如何返回消息
- c++ - CMake 找不到文件或目录
- javascript - React Native 在生产模式下仅显示启动画面
- c# - 基于需要在执行时间内接收更多项目的列表执行 Parallel.ForEach
- javascript - 第二次通过后阵列未重置
- typescript - Jest mockImplementation 不是一个函数,但可以与 require 一起使用
- bash - 如何在 Bash 脚本中使用 JQ 通过变量修改 json 文件?