当前位置:首页 > React

react如何引用echarts饼状图

2026-01-25 21:58:19React

安装依赖

在项目中安装 ECharts 和 React 的 ECharts 封装库:

npm install echarts echarts-for-react

引入组件和 ECharts

在需要使用的组件中引入必要的模块:

react如何引用echarts饼状图

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

准备图表配置

创建饼状图的配置对象:

const getOption = () => ({
  title: {
    text: '示例饼图',
    subtext: '虚拟数据',
    left: 'center'
  },
  tooltip: {
    trigger: 'item',
    formatter: '{a} <br/>{b}: {c} ({d}%)'
  },
  legend: {
    orient: 'vertical',
    left: 'left',
    data: ['直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎']
  },
  series: [
    {
      name: '访问来源',
      type: 'pie',
      radius: '50%',
      data: [
        { value: 335, name: '直接访问' },
        { value: 310, name: '邮件营销' },
        { value: 234, name: '联盟广告' },
        { value: 135, name: '视频广告' },
        { value: 1548, name: '搜索引擎' }
      ],
      emphasis: {
        itemStyle: {
          shadowBlur: 10,
          shadowOffsetX: 0,
          shadowColor: 'rgba(0, 0, 0, 0.5)'
        }
      }
    }
  ]
});

渲染图表组件

在组件中渲染 ECharts 实例:

react如何引用echarts饼状图

function PieChart() {
  return (
    <ReactECharts
      option={getOption()}
      style={{ height: '400px', width: '100%' }}
      className="echarts-for-react"
    />
  );
}

export default PieChart;

自定义主题(可选)

如需使用自定义主题,可注册主题后应用:

// 引入主题文件
import { registerTheme } from 'echarts';

registerTheme('myTheme', {
  backgroundColor: '#f4cccc',
  color: ['#dd6b66', '#759aa0', '#e69d87', '#8dc1a9', '#ea7e53']
});

// 在组件中使用主题
<ReactECharts 
  option={getOption()} 
  theme="myTheme"
/>

响应式处理

添加窗口大小变化时的自适应逻辑:

function PieChart() {
  const chartRef = React.useRef(null);

  React.useEffect(() => {
    const handleResize = () => {
      if (chartRef.current) {
        chartRef.current.getEchartsInstance().resize();
      }
    };
    window.addEventListener('resize', handleResize);
    return () => window.removeEventListener('resize', handleResize);
  }, []);

  return (
    <ReactECharts
      ref={chartRef}
      option={getOption()}
      style={{ height: '400px', width: '100%' }}
    />
  );
}

注意事项

  1. 确保在服务器端渲染(SSR)环境中正确导入 ECharts,可能需要动态导入
  2. 大数据量时考虑使用懒加载或虚拟滚动优化性能
  3. TypeScript 项目需要安装对应的类型声明文件:
    npm install --save-dev @types/echarts

标签: reactecharts
分享给朋友:

相关文章

react如何更新

react如何更新

更新 React 版本的方法 检查当前 React 版本 运行以下命令查看项目中安装的 React 版本: npm list react 更新 React 及相关依赖 通过 npm 或 yar…

react性能如何

react性能如何

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

如何调试react

如何调试react

调试 React 应用的方法 使用 React Developer Tools 安装浏览器扩展(Chrome/Firefox),通过组件树查看组件状态、props 和 hooks。支持实时编辑 pro…

elementui echarts

elementui echarts

ElementUI 与 ECharts 集成指南 ElementUI 是饿了么团队开发的 Vue.js 组件库,ECharts 是百度开源的 JavaScript 图表库。两者结合可快速构建数据可视化…

react如何扩展

react如何扩展

扩展 React 项目的常用方法 使用高阶组件(HOC) 高阶组件是一种复用组件逻辑的方式。通过包裹组件并注入额外属性或逻辑,可以实现功能扩展。例如,一个日志记录的高阶组件: function…

react 如何修改state

react 如何修改state

修改 state 的基础方法 在 React 中,state 的修改必须通过 setState 方法(类组件)或 state 更新函数(函数组件)。直接修改 state 会导致组件不会重新渲染,且可能…