# 4.x 迁移指南
Chart.js 4.0 引入了许多重大更改。我们尽量将重大更改的次数降至最低。对于某些功能和错误修复,需要打破向后兼容性,但我们力求仅在必要时进行此操作。
# 最终用户迁移
# 图表
- 图表不再覆盖默认的工具提示回调,因此所有图表类型都具有相同外观的工具提示。
- 如果配置的比例尺以“x”/“y”开头,则默认比例尺覆盖已移除。在配置中定义“xAxes”现在将创建一个第二个比例尺,而不是覆盖默认的“x”轴。
# 选项
对传递给“Chart”构造函数的配置选项进行了一些更改。这些更改在下面有文档记录。
# 特定更改
- 径向线性网格可索引和可脚本选项不再降低指定网格线的索引。
- “destroy”插件钩子已移除,并由“afterDestroy”替换。
- 时间比例上的刻度回调现在接收时间戳而不是格式化的标签。
- “scales[id].grid.drawBorder”已重命名为“scales[id].border.display”。
- “scales[id].grid.borderWidth”已重命名为“scales[id].border.width”。
- “scales[id].grid.borderColor”已重命名为“scales[id].border.color”。
- “scales[id].grid.borderDash”已重命名为“scales[id].border.dash”。
- “scales[id].grid.borderDashOffset”已重命名为“scales[id].border.dashOffset”。
- 比例尺边框的 z 索引现在可配置,而不是像网格 z 索引一样高 1 个单位。
- 如果最小值和最大值相同,则线性比例现在会将最大值的 5% 添加到范围并从中减去,而不是 1。
- 如果工具提示回调返回“undefined”,则将使用默认回调。
- “maintainAspectRatio”会尊重容器高度。
- 时间和时间序列比例使用“ticks.stepSize”而不是“time.stepSize”,后者已移除。
- 如果确定的最大刻度数小于“maxTicksLimit”,则“maxTickslimit”不会用于“autoSkip”中的刻度。
- “dist/chart.js”已移除。
- “dist/chart.min.js”已重命名为“dist/chart.umd.js”。
- “dist/chart.esm.js”已重命名为“dist/chart.js”。
# 类型更改
- “ChartMeta”参数的顺序已从“<Element, DatasetElement, Type>”更改为“<Type, Element, DatasetElement>”。
# 通用
- Chart.js 成为一个 仅 ESM 包 (在新窗口中打开) (UMD 包仍然可用)。要使用 Chart.js,您的项目也应该是一个 ES 模块。确保在您的“package.json”中包含以下内容如果您在使用 Jest (在新窗口中打开) 时遇到问题,请按照其 文档 (在新窗口中打开) 启用 ESM 支持。或者,我们建议您迁移到 Vitest (在新窗口中打开)。Vitest 默认支持 ESM,并且 与 Jest 的 API 几乎相同 (在新窗口中打开)。查看 迁移示例 (在新窗口中打开)。
{ "type": "module" }
- 移除图例文本和删除线颜色的“fontColor”回退。
- 移除填充插件中“config._chart”对“this.chart”的回退。
- 移除填充插件中的“this._chart”。