在 ECharts 中,“更新”通常指数据变化后重新渲染图表。常见做法和场景如下:
setOption(推荐)ECharts 的设计是增量更新,直接再次调用 setOption 即可。
// 初始化
const chart = echarts.init(document.getElementById('main'));
// 第一次渲染
chart.setOption({
xAxis: { type: 'category', data: ['A', 'B', 'C'] },
yAxis: {},
series: [{ type: 'bar', data: [1, 2, 3] }]
});
// 数据更新
setTimeout(() => {
chart.setOption({
xAxis: { data: ['D', 'E', 'F'] },
series: [{ data: [4, 5, 6] }]
});
}, 2000);
✅ 特点:
如果你希望完全覆盖之前的配置:
chart.setOption(option, true);
第二个参数 true 表示 notMerge
setInterval(() => {
chart.setOption({
series: [{
data: randomData()
}]
});
}, 1000);
chart.setOption({
series: [{ type: 'line' }]
}, true); // 建议用 true
button.onclick = () => {
chart.setOption({
series: [{ data: [10, 20, 30] }]
});
};
图表容器大小变化时必须调用:
window.addEventListener('resize', () => {
chart.resize();
});
chart.dispose();
chart = echarts.init(document.getElementById('main'));
chart.setOption(option);
⚠️ 一般只在组件卸载 / 页面切换时使用
watch 数据 → setOptionuseEffect / useRef如果你是 Vue / React / 小程序 / 大屏项目,可以告诉我,我给你对应示例。
| 场景 | 方法 |
|---|---|
| 数据更新 | setOption |
| 完全替换 | setOption(opt, true) |
| 尺寸变化 | resize() |
| 销毁 | dispose() |
如果你有具体代码或更新不生效的问题,可以直接贴出来。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。