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

使用 Create React App 生成项目 安装 Node.js 后,通过命令行工具运行以下命令创建新项目: npx create-react-app my-app cd my-app npm…

react如何查

react如何查

React 查询方法 React 提供了多种查询 DOM 元素的方式,以下是几种常见的方法: 使用 ref 通过 useRef 钩子可以获取 DOM 节点的引用,适用于直接操作 DOM 的场景。…

如何安装react

如何安装react

安装React的方法 方法一:使用Create React App(官方推荐) Create React App是官方提供的脚手架工具,适合快速搭建React项目。确保已安装Node.js(建议版本≥…

react如何debugger

react如何debugger

调试 React 应用的方法 使用浏览器开发者工具进行调试 React 开发者工具(React DevTools)是调试 React 应用的必备工具。安装 Chrome 或 Firefox 扩展后,可…

react如何检测窗口

react如何检测窗口

监听窗口大小变化 使用useEffect钩子和resize事件监听窗口尺寸变化。在组件挂载时添加事件监听器,卸载时移除监听器以避免内存泄漏。 import { useState, useEffect…

react如何切换class

react如何切换class

动态切换 React 组件的类名 在 React 中动态切换类名可以通过多种方式实现,以下是常见的几种方法: 使用模板字符串和状态管理 function MyComponent() { con…