当前位置:首页 > React

react实现echarts

2026-01-26 14:51:33React

在 React 中实现 ECharts

安装 ECharts 和 React 封装库

npm install echarts echarts-for-react

基础使用示例

创建一个简单的折线图组件

import React from 'react';
import ReactECharts from 'echarts-for-react';

function LineChart() {
  const option = {
    xAxis: {
      type: 'category',
      data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    },
    yAxis: {
      type: 'value'
    },
    series: [{
      data: [820, 932, 901, 934, 1290, 1330, 1320],
      type: 'line'
    }]
  };

  return <ReactECharts option={option} />;
}

export default LineChart;

响应式处理

添加窗口大小变化的监听

import React, { useEffect, useRef } from 'react';
import ReactECharts from 'echarts-for-react';

function ResponsiveChart() {
  const chartRef = useRef(null);

  const option = {
    // 图表配置
  };

  useEffect(() => {
    const handleResize = () => {
      if (chartRef.current) {
        chartRef.current.getEchartsInstance().resize();
      }
    };

    window.addEventListener('resize', handleResize);
    return () => window.removeEventListener('resize', handleResize);
  }, []);

  return <ReactECharts ref={chartRef} option={option} />;
}

主题定制

使用自定义主题

import * as echarts from 'echarts';
import ReactECharts from 'echarts-for-react';

function ThemedChart() {
  // 注册主题
  echarts.registerTheme('my_theme', {
    backgroundColor: '#f4cccc',
    // 其他主题配置
  });

  return (
    <ReactECharts 
      option={option} 
      theme="my_theme" 
      style={{ height: 400 }}
    />
  );
}

事件处理

添加图表事件监听

function ChartWithEvents() {
  const onEvents = {
    click: (params) => {
      console.log('Chart clicked', params);
    },
    legendselectchanged: (params) => {
      console.log('Legend selected', params);
    }
  };

  return <ReactECharts option={option} onEvents={onEvents} />;
}

动态数据更新

使用 useEffect 更新数据

function DynamicChart({ data }) {
  const [option, setOption] = useState(baseOption);

  useEffect(() => {
    setOption(prev => ({
      ...prev,
      series: [{ ...prev.series[0], data }]
    }));
  }, [data]);

  return <ReactECharts option={option} />;
}

性能优化

对于大数据量图表使用懒加载

react实现echarts

function LazyLoadChart() {
  const [loaded, setLoaded] = useState(false);

  return (
    <div onMouseEnter={() => setLoaded(true)}>
      {loaded && <ReactECharts option={largeDataOption} />}
      {!loaded && <div>Hover to load chart</div>}
    </div>
  );
}

注意事项

  • 确保在组件卸载时销毁图表实例
  • 大数据量场景考虑使用增量渲染
  • 多图表页面注意内存管理
  • 服务端渲染需要特殊处理

标签: reactecharts
分享给朋友:

相关文章

如何配置react

如何配置react

配置React项目的步骤 安装Node.js和npm 确保系统已安装Node.js(包含npm)。可通过官网下载并安装最新版本。安装完成后,运行以下命令验证版本: node -v npm -v 创建…

react如何发音

react如何发音

React的发音 React的正确发音为 /riˈækt/,类似于“ree-akt”。以下是详细说明: 发音分解 第一个音节“Ree”发音类似英文单词“see”中的“ee”音。…

react项目如何调试

react项目如何调试

使用浏览器开发者工具 React项目调试最直接的方法是使用浏览器内置的开发者工具(Chrome DevTools/Firefox Developer Tools)。打开开发者工具后,切换到“Sourc…

react如何用echarts

react如何用echarts

在React中使用ECharts 安装ECharts和React专用封装库: npm install echarts echarts-for-react 基础使用示例 创建一个基础的柱状图组件:…

如何外部访问react

如何外部访问react

外部访问 React 应用的方法 配置代理服务器 在开发环境中,可以通过配置代理服务器解决跨域问题。修改 package.json 文件,添加 proxy 字段指向后端 API 地址: "proxy…

如何编译react文件

如何编译react文件

编译 React 文件的方法 使用 Create React App (CRA) Create React App 是官方推荐的快速搭建 React 项目的工具,内置了 Babel 和 Webpack…