TOAST UI Chart v4.0 迁移指南:从技术专家视角解析重大变更

TOAST UI Chart v4.0 迁移指南:从技术专家视角解析重大变更

tui.chart tui.chart 项目地址: https://gitcode.com/gh_mirrors/tui/tui.chart

引言

TOAST UI Chart 4.0 版本是一次重大升级,基于 canvas 技术重构,移除了外部依赖并支持 tree shaking,带来了更轻量的开发体验。本文将作为技术专家视角的迁移指南,帮助开发者全面理解这次升级的核心变化。

核心变更解析

1. 安装方式变更

包名与命名空间调整
  • 包名变更:从 tui-chart 变更为 @toast-ui/chart
  • 命名空间调整:全局命名空间从 tui 改为 toastui
# 旧版安装
npm install tui-chart

# 新版安装
npm install @toast-ui/chart
按需引入优化

4.0 版本支持更精细的模块化引入:

// 完整引入
import Chart from '@toast-ui/chart';

// 按图表类型引入
import { BarChart } from '@toast-ui/chart';
资源文件调整
  • CSS 文件路径变更:
import '@toast-ui/chart/dist/toastui-chart.css';
  • 移除了包含所有依赖的 -all 版本和包含 polyfill 的版本

2. 图表创建方式重构

新旧 API 对比
// 旧版 (v3.x)
const chart = Chart.barChart(el, data, options);

// 新版 (v4.0)
// 方式1:静态方法
const chart = Chart.barChart({el, data, options});

// 方式2:构造函数
import { BarChart } from '@toast-ui/chart';
const chart = new BarChart({el, data, options});
组合图表命名规范化

| 旧版名称 | 新版名称 | 说明 | |---------|---------|------| | comboChart | nestedPieChart | 嵌套饼图 | | comboChart | columnLineChart | 柱线组合图 | | comboChart | lineAreaChart | 线面积组合图 |

3. 主题系统升级

4.0 版本对主题系统进行了全面重构:

// 旧版主题注册
Chart.registerTheme('myTheme', themeConfig);

// 新版主题配置
const options = {
  theme: {
    chart: { /* 全局样式 */ },
    series: { /* 系列样式 */ },
    tooltip: { /* 提示框样式 */ }
  }
};

// 动态更新主题
chart.setOptions({
  theme: {
    series: { colors: ['#FF0000', '#00FF00'] }
  }
});

4. 提示框(Tooltip)增强

数据格式化更灵活
// 旧版简单格式化
chart: { format: '1,000' },
tooltip: { suffix: '℃' }

// 新版函数式格式化
tooltip: {
  formatter: (value) => {
    return `${value.toFixed(2)} ℃`;
  }
}
模板系统升级

新版提供了更丰富的模板参数:

tooltip: {
  template: (model, defaultTemplate, theme) => {
    return `
      <div style="background: ${theme.background}">
        <p>${model.category}</p>
        ${defaultTemplate.body}
      </div>
    `;
  }
}

5. 坐标轴优化

刻度与标签间隔

4.0 版本简化了间隔配置:

// 旧版
xAxis: {
  tickInterval: 'auto',
  labelInterval: 2
}

// 新版
xAxis: {
  tick: {
    interval: (axis) => Math.ceil(axis.dataCount / 5)
  },
  label: {
    interval: 2
  }
}

6. 数据标签配置变更

数据标签样式从直接配置迁移到主题系统:

// 旧版
series: {
  dataLabels: {
    visible: true,
    anchor: 'center'
  }
}

// 新版
theme: {
  series: {
    dataLabels: {
      visible: true,
      anchor: 'center'
    }
  }
}

7. 嵌套饼图(NestedPie)重构

原 Pie&Donut 组合图重命名为 NestedPie,数据格式也进行了调整:

// 新版数据结构
const data = {
  categories: ['A', 'B'],
  series: [
    {
      name: 'Alpha',
      data: [
        { name: 'A1', data: 10 },
        { name: 'A2', data: 20 }
      ]
    },
    {
      name: 'Beta',
      data: [
        { name: 'B1', data: 30 },
        { name: 'B2', data: 40 }
      ]
    }
  ]
};

8. 响应式布局增强

4.0 版本引入了更完善的响应式方案:

const options = {
  chart: {
    width: 'auto',
    height: 'auto'
  },
  responsive: {
    animation: { duration: 300 },
    rules: [
      {
        condition: ({ width }) => width < 500,
        options: {
          legend: { visible: false }
        }
      }
    ]
  }
};

移除的功能

  1. 不再支持 Bower:全面转向 npm/yarn 等现代包管理工具
  2. 废弃的 API
    • registerTheme 方法
    • comboChart 静态方法
    • 部分过时的配置项

升级建议

  1. 先在小规模项目中测试迁移
  2. 重点关注主题系统和提示框配置的变更
  3. 利用新的响应式规则优化移动端体验
  4. 对于组合图表,注意名称变更和数据格式调整

TOAST UI Chart 4.0 通过这次架构升级,在性能、可维护性和开发者体验方面都有显著提升。虽然迁移需要一定成本,但新版本带来的长期收益值得投入。

tui.chart tui.chart 项目地址: https://gitcode.com/gh_mirrors/tui/tui.chart

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冯爽妲Honey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值