快速开始
安装 transone-chart,用 TcChart 组件或引擎直用渲染第一张图表。
安装
transone-chart 是 monorepo 内的独立 workspace 包,peer 依赖transone >= 0.3.0(仅组件集成 TcChart 需要):
bash
bun add transone-chart方式一:TcChart 声明式组件(推荐)
与 transone 组件系统集成:option由父级传入(完全受控),数据变化自动setOption + render,组件卸载自动销毁:
typescript
import { Component, createComponent } from 'transone';
import { TcChart } from 'transone-chart';
const option = {
type: 'line',
title: { text: '城市指数趋势' },
xAxis: { labels: ['4月', '5月', '6月', '7月', '8月', '9月'] },
series: [
{ name: '北京', data: [82, 85, 84, 88, 90, 92], smooth: true },
{ name: '上海', data: [80, 83, 86, 85, 89, 91], smooth: true, area: true },
],
};
class MyPage extends Component {
render() {
return createComponent({ component: TcChart, props: { option } });
}
}画布尺寸
canvas 由组件渲染(<canvas type="2d">),外层容器需给高度,如 260px。Web 端直接渲染,小程序端经 SelectorQuery 自动取节点。自动重绘
容器 / 窗口宽度变化时组件自动重绘(防抖 150ms):Web 端 ResizeObserver 监听后增量resize + render,小程序端窗口尺寸回调触发后重建;图表始终铺满容器宽度,无需手动调用。示例:折线图(上面配置的实际渲染)
series[].smooth 开启平滑曲线(三次贝塞尔插值);series[].area 开启面积填充(globalAlpha 0.15)。
方式二:引擎直用(无框架场景)
不依赖 transone 组件系统时,直接用工厂入口:
typescript
import { createWebChart, createMiniProgramChart } from 'transone-chart';
// Web:HTMLCanvasElement
const chart = createWebChart(canvasElement, option);
chart.render();
// 小程序:Canvas 2D 节点
const chart2 = createMiniProgramChart(canvasNode, option);
chart2.render();
// 高级:自定义渲染上下文(如原生桥层实现 ICanvas2D 后)
import { createChart } from 'transone-chart';
const chart3 = createChart(context, option); // context 为 ChartRenderContext
chart3.render();Demo 项目
仓库内playground/chart-demo用城市指数场景数据演示五种图表(折线 / 堆叠柱 / 横向柱 / 环形饼 / 雷达),四端构建命令:
bash
bun run build:web # H5
bun run build:weixin # 微信小程序
bun run build:alipay # 阿里小程序
bun run build:bytedance # 字节小程序