最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React19通用ECharts組件的使用示例

 更新時(shí)間:2026年02月04日 09:01:14   作者:zwjapple  
本文主要介紹了React19通用ECharts組件的使用示例,支持餅圖、折線圖和柱狀圖,并且可以自動(dòng)銷(xiāo)毀實(shí)例以避免重復(fù)渲染問(wèn)題,同時(shí)能夠自動(dòng)響應(yīng)窗口大小變化,下面就來(lái)詳細(xì)的介紹一下

好,我給你做一個(gè) React 19 通用 ECharts 組件,
支持餅圖 / 折線圖 / 柱狀圖,colors 可選,不傳也能顯示,防止重復(fù)渲染。

1.src/services/echarts.ts

注冊(cè)所有需要的圖表類(lèi)型和組件(不用再分開(kāi)寫(xiě)折線/餅圖/柱狀圖)

// src/services/echarts.ts
import * as echarts from 'echarts/core';
import {
  TitleComponent,
  TooltipComponent,
  GridComponent,
  LegendComponent,
  ToolboxComponent
} from 'echarts/components';
import { LineChart, PieChart, BarChart } from 'echarts/charts';
import { CanvasRenderer } from 'echarts/renderers';

// 按需注冊(cè)組件
echarts.use([
  TitleComponent,
  TooltipComponent,
  GridComponent,
  LegendComponent,
  ToolboxComponent,
  LineChart,
  PieChart,
  BarChart,
  CanvasRenderer
]);

export default echarts;

2.src/components/EChartsBase.tsx

一個(gè)通用的 React 19 ECharts 組件

// src/components/EChartsBase.tsx
import React, { useRef, useEffect } from 'react';
import echarts from '@/services/echarts';

interface EChartsBaseProps {
  option: echarts.EChartsOption;
  width?: string;
  height?: string;
}

const EChartsBase: React.FC<EChartsBaseProps> = ({
  option,
  width = '100%',
  height = '400px'
}) => {
  const chartRef = useRef<HTMLDivElement | null>(null);
  const chartInstance = useRef<echarts.EChartsType | null>(null);

  useEffect(() => {
    if (chartRef.current) {
      // 如果已有實(shí)例,先銷(xiāo)毀,防止 React 19 重復(fù)渲染
      if (chartInstance.current) {
        chartInstance.current.dispose();
      }
      chartInstance.current = echarts.init(chartRef.current);
      chartInstance.current.setOption(option);
    }

    // 監(jiān)聽(tīng)窗口大小變化
    const handleResize = () => {
      chartInstance.current?.resize();
    };
    window.addEventListener('resize', handleResize);

    return () => {
      chartInstance.current?.dispose();
      window.removeEventListener('resize', handleResize);
    };
  }, [option]);

  return <div ref={chartRef} style={{ width, height }} />;
};

export default EChartsBase;

3. 使用示例(不傳colors也能顯示)

// src/pages/DemoCharts.tsx
import React from 'react';
import EChartsBase from '@/components/EChartsBase';

export default function DemoCharts() {
  const pieOption = {
    title: { text: '示例餅圖', left: 'center' },
    tooltip: { trigger: 'item' },
    legend: { bottom: 0 },
    series: [
      {
        name: '訪問(wèn)來(lái)源',
        type: 'pie',
        radius: '50%',
        data: [
          { value: 1048, name: '搜索引擎' },
          { value: 735, name: '直接訪問(wèn)' },
          { value: 580, name: '郵件營(yíng)銷(xiāo)' }
        ]
      }
    ]
  };

  const lineOption = {
    title: { text: '示例折線圖' },
    tooltip: { trigger: 'axis' },
    xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },
    yAxis: { type: 'value' },
    series: [
      { data: [150, 230, 224, 218, 135, 147, 260], type: 'line', smooth: true }
    ]
  };

  const barOption = {
    title: { text: '示例柱狀圖' },
    tooltip: {},
    xAxis: { type: 'category', data: ['蘋(píng)果', '香蕉', '橘子', '梨子'] },
    yAxis: { type: 'value' },
    series: [
      { data: [5, 20, 36, 10], type: 'bar' }
    ]
  };

  return (
    <div style={{ padding: 20 }}>
      <EChartsBase option={pieOption} height="300px" />
      <EChartsBase option={lineOption} height="300px" />
      <EChartsBase option={barOption} height="300px" />
    </div>
  );
}

? 特點(diǎn):

  • React 19 兼容
  • 餅圖 / 折線圖 / 柱狀圖通用
  • colors 可選,不傳也正常顯示
  • 自動(dòng)銷(xiāo)毀實(shí)例,避免 React 19 重復(fù)渲染導(dǎo)致的圖表不顯示
  • 自動(dòng)響應(yīng)窗口大小變化

到此這篇關(guān)于React19通用ECharts組件的使用示例的文章就介紹到這了,更多相關(guān)React通用ECharts內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • React Router 用法詳細(xì)介紹

    React Router 用法詳細(xì)介紹

    React Router 是 React 中用于處理頁(yè)面導(dǎo)航和路由的工具,它使用 HTML5 History API 或 URL 的哈希部分進(jìn)行路由管理,本文介紹React Router 用法詳細(xì)講解,感興趣的朋友一起看看吧
    2025-01-01
  • react-native 封裝視頻播放器react-native-video的使用

    react-native 封裝視頻播放器react-native-video的使用

    本文主要介紹了react-native 封裝視頻播放器react-native-video的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • React中使用axios發(fā)送請(qǐng)求的幾種常用方法

    React中使用axios發(fā)送請(qǐng)求的幾種常用方法

    本文主要介紹了React中使用axios發(fā)送請(qǐng)求的幾種常用方法,主要介紹了get和post請(qǐng)求,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-08-08
  • 字節(jié)封裝React組件手機(jī)號(hào)自動(dòng)校驗(yàn)格式FormItem

    字節(jié)封裝React組件手機(jī)號(hào)自動(dòng)校驗(yàn)格式FormItem

    這篇文章主要為大家介紹了字節(jié)封裝React組件手機(jī)號(hào)自動(dòng)校驗(yàn)格式FormItem,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 淺談React useDebounce 防抖原理

    淺談React useDebounce 防抖原理

    本文主要介紹了淺談React useDebounce 防抖原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • React使用Mobx6.x共享狀態(tài)問(wèn)題

    React使用Mobx6.x共享狀態(tài)問(wèn)題

    這篇文章主要介紹了React使用Mobx6.x共享狀態(tài)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • React-Hook中使用useEffect清除定時(shí)器的實(shí)現(xiàn)方法

    React-Hook中使用useEffect清除定時(shí)器的實(shí)現(xiàn)方法

    這篇文章主要介紹了React-Hook中useEffect詳解(使用useEffect清除定時(shí)器),主要介紹了useEffect的功能以及使用方法,還有如何使用他清除定時(shí)器,需要的朋友可以參考下
    2022-11-11
  • 詳解React中如何拆分組件

    詳解React中如何拆分組件

    這篇文章主要為大家詳細(xì)介紹了React中拆分組件的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),對(duì)我們掌握React有一定的幫助,需要的小伙伴可以參考一下
    2023-12-12
  • React中ES5與ES6寫(xiě)法的區(qū)別總結(jié)

    React中ES5與ES6寫(xiě)法的區(qū)別總結(jié)

    這篇文章主要總結(jié)介紹了關(guān)于React中ES5與ES6的寫(xiě)法區(qū)別,文中介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-04-04
  • react?定位組件源碼解析

    react?定位組件源碼解析

    這篇文章主要為大家介紹了react定位組件源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03

最新評(píng)論

长泰县| 安化县| 上杭县| 阜城县| 马尔康县| 高邑县| 镇沅| 青龙| 申扎县| 思南县| 尉氏县| 丰都县| 陕西省| 涿州市| 张家川| 安西县| 黄浦区| 拜泉县| 定边县| 周宁县| 通道| 浦县| 扶沟县| 乡宁县| 东明县| 三江| 广东省| 平乡县| 兴安县| 西乌| 安化县| 黄骅市| 苍溪县| 辽宁省| 望谟县| 兴和县| 徐汇区| 东平县| 玛纳斯县| 长垣县| 丽江市|