当前位置:首页 > 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;

响应式处理

添加窗口大小变化的监听

react实现echarts

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 }}
    />
  );
}

事件处理

添加图表事件监听

react实现echarts

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} />;
}

性能优化

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

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 native如何启动

react native如何启动

React Native 启动步骤 确保已安装 Node.js(建议版本 14 或更高)和 npm/yarn。安装完成后,通过命令行工具执行以下操作。 初始化新项目 使用 React Native…

如何学react

如何学react

学习 React 的基础知识 React 是一个用于构建用户界面的 JavaScript 库。学习 React 的第一步是掌握其核心概念,包括组件、状态(State)、属性(Props)和生命周期方法…

react 如何引入css

react 如何引入css

在 React 中引入 CSS 的方法 React 提供了多种引入 CSS 的方式,可以根据项目需求选择合适的方法。以下是常见的几种方式: 内联样式 内联样式直接在组件中通过 style 属性定义…

react性能如何

react性能如何

React 性能特点 React 通过虚拟 DOM(Virtual DOM)和高效的 diff 算法优化性能。虚拟 DOM 减少了直接操作真实 DOM 的开销,仅在必要时更新变化的部分。React 的…

react 如何分页

react 如何分页

分页实现方法 在React中实现分页功能可以通过多种方式完成,具体取决于数据来源(如API或本地数据)和UI库的选择。以下是常见的实现方法: 使用本地数据分页 对于存储在组件状态或Context中…

如何创建react

如何创建react

创建React项目的步骤 使用Create React App工具快速搭建React项目。确保已安装Node.js(版本需≥14.0.0)和npm(版本需≥5.6)。 打开终端或命令行工具,运行以…