# 4.x 遷移指南
Chart.js 4.0 引入了一些重大變更。我們試圖將重大變更的數量降至最低。對於某些功能和錯誤修復,有必要打破向後相容性,但我們的目標是僅在值得受益時才這樣做。
# 終端使用者遷移
# 圖表
- 圖表不會覆蓋預設的工具提示回呼,因此所有圖表類型都具有相同外觀的工具提示。
- 如果設定的刻度以
x
/y
開頭,則已移除預設刻度覆寫。現在在您的設定中定義xAxes
將會建立第二個刻度,而不是覆寫預設的x
軸。
# 選項
對傳遞至 Chart
建構函式的設定選項進行了許多變更。這些變更記錄如下。
# 具體變更
- radialLinear 網格可索引和可腳本選項不再減少指定網格線的索引。
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
回退。 - 已移除填充外掛程式中
this.chart
的config._chart
回退。 - 已移除填充外掛程式中的
this._chart
。