当前位置:首页 > 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如何浮动

使用 CSS 实现浮动 在 React 中实现浮动效果可以通过 CSS 的 float 属性完成。在组件的样式文件或内联样式中直接设置 float: left 或 float: right。 /…

如何用react

如何用react

使用React的基本步骤 安装Node.js和npm 确保系统已安装Node.js和npm。Node.js自带npm,可从官网下载安装包。安装完成后,通过命令行验证版本: node -v npm -…

react如何清理

react如何清理

清理 React 项目的方法 清理未使用的依赖项 运行 npm prune 或 yarn install --production 可以移除 node_modules 中未在 package.json…

react如何减少setState

react如何减少setState

减少 React 中 setState 调用的方法 合并多次状态更新 使用函数式更新方式合并多次 setState 调用。React 会将多次状态更新批量处理,避免不必要的重新渲染。 // 非函…

react路由如何刷新

react路由如何刷新

React 路由刷新方法 在 React 中,路由刷新通常涉及以下几种场景和解决方案: 强制重新加载当前页面 使用 window.location.reload() 可以强制刷新整个页面,但会丢失…

react如何提交表单

react如何提交表单

表单提交的基本方法 在React中提交表单通常通过控制组件状态和事件处理实现。表单数据通过onSubmit事件捕获,并阻止默认提交行为以避免页面刷新。 import { useState } fro…