全网React开发者下载量最高的 ECharts封装组件
liuian 2025-01-31 14:02 36 浏览
大家好,我是程序视点的小二哥!
前言
echarts 是什么,不用多说了,国内最知名的可视化图表库之一。而今天要和大家分享的 echarts-for-react ,就是echarts的一个极简的 React 封装。
echarts-for-react插件可以在React中调用echarts接口直接渲染出Echarts图表,只要传入相关的参数和数据即可。
它让echart变得如此简单。再也不用自己封装echarts轮子了。有人把echarts轮子封装好了。
简介
可视化图表 echarts-for-react 是使用 React 基于 echarts 封装的图表库,能够满足基本的可视化图表需求。
它把 echarts 的配置参数通过 React 组件的 props 形式进行传递配置。代码简洁,功能适用。
安装
$ npm install --save echarts-for-react
# `echarts` 是 `echarts-for-react`的依赖,毕竟你封装的就是echarts嘛。选择自己熟悉的echarts版本进行安装。
$ npm install --save echarts
使用
import React from 'react';
import ReactECharts from 'echarts-for-react'; // 或者 var ReactECharts = require('echarts-for-react');
<ReactECharts
option={this.getOption()}
notMerge={true}
lazyUpdate={true}
theme={"theme_name"}
onChartReady={this.onChartReadyCallback}
onEvents={EventsDict}
opts={}
/>
注意:我们知道整个Echarts的体积是很大的。因此,我们在使用时,还是采用手动引入,以此来减低最后打包的体积。
官方根据Echarts的不同版本,给出了示例: Echarts.js V5:
import React from 'react';
// 引入核心库.
import ReactEChartsCore from 'echarts-for-react/lib/core';
// 引入核心模块, 提供使用echarts的必需接口.
import * as echarts from 'echarts/core';
// 按需引入,想必大家都明白
import {
BarChart,
} from 'echarts/charts';
import {
GridComponent,
TooltipComponent,
DatasetComponent,
} from 'echarts/components';
// 引入渲染器, 注意使用 Canvas 或者 SVG 渲染 也是必要的
import {
CanvasRenderer,
// SVGRenderer,
} from 'echarts/renderers';
// 注册组件
echarts.use(
[TitleComponent, TooltipComponent, GridComponent, BarChart, CanvasRenderer]
);
// 组件使用
<ReactEChartsCore
echarts={echarts}
option={this.getOption()}
notMerge={true}
lazyUpdate={true}
theme={"theme_name"}
onChartReady={this.onChartReadyCallback}
onEvents={EventsDict}
opts={}
/>
Echarts.js v3 or v4:
import React from 'react';
// 引入原则和v5差不多,只是存在版本的差异。
import ReactEChartsCore from 'echarts-for-react/lib/core';
import echarts from 'echarts/lib/echarts';
import 'echarts/lib/chart/bar';
import 'echarts/lib/component/tooltip';
import 'echarts/lib/component/title';
// 组件使用
<ReactEChartsCore
echarts={echarts}
option={this.getOption()}
notMerge={true}
lazyUpdate={true}
theme={"theme_name"}
onChartReady={this.onChartReadyCallback}
onEvents={EventsDict}
opts={}
/>
属性参数
- option 这个是核心,是必须的。包含echarts图表的配置项和数据,如标题title、图例legend、x轴xAxis、y轴yAxis、series等,详见 http://echarts.baidu.com/option.html#title.
- notMerge 可选,是否不跟之前设置的 option 进行合并,默认为 false,即合并。
- lazyUpdate 可选,在设置完 option 后是否不立即更新图表,默认为 false,即立即更新。
- style 包含echarts图表的div的样式,默认是{height: '300px'}.
- className 包含echarts图表的div的类名. 可以根据需要自行配置类名,不同类配置不同的css。
- theme 应用的主题。可以是一个主题的配置对象,也可以是使用已经通过 echarts.registerTheme 注册的主题名称。
通过registerTheme注册主题:
// 引入echarts
import echarts from 'echarts';
...
// 注册主题
echarts.registerTheme('my_theme', {
backgroundColor: '#f4cccc'
});
...
// 渲染主题
<ReactEcharts
option={this.getOption()}
style={{height: '300px', width: '100%'}}
className='echarts-for-echarts'
theme='my_theme' />
- onChartReady 当图表准备好时,将图表作为参数传给回调函数。
- loadingOption echarts的加载配置。
- showLoading 是否加载动画效果
- onEvents 为图表绑定事件
let onEvents = {
'click': this.onChartClick,
'legendselectchanged': this.onChartLegendselectchanged
}
...
<ReactEcharts
option={this.getOption()}
style={{height: '300px', width: '100%'}}
onEvents={onEvents} />
- opts 附加参数。有下面几个可选项:
devicePixelRatio 设备像素比,默认取浏览器的值window.devicePixelRatio。
renderer 渲染器,支持 canvas 或者 svg渲染。
width 可显示指定实例宽度,单位为像素。如果传入值为 null或undefined或'auto',则表示自动取 dom(实例容器)的宽度。
height 可显式指定实例高度,单位为像素。如果传入值为 null或undefined或'auto',则表示自动取 dom(实例容器)的高度。
组件API和ECharts API
对于组件来说,只有一个API: getEchartsInstance(),用来获取Echarts的实例对象。获取到对象后就可以使用任意的Echarts API。
// 使用 ref
<ReactEcharts ref={(e) => { this.echarts_react = e; }}
option={this.getOption()} />
// 通过 this.echarts_react获取`ReactEcharts`实例
let echarts_instance = this.echarts_react.getEchartsInstance();
// 接着就可以使用Echarts的API了。
let base64 = echarts_instance.getDataURL();
使用这些API可以实现以下功能:
- 绑定/解绑事件
- 设置带有动态数据的动态图表
- 获取echarts dom/dataurl/base64,将图表保存到png。
- 发布图表
体验和建议 echarts-for-react同样延续了echarts官网的特色,提供了示例及代码,方便开发者查阅,提高开发效率。小伙伴们可以根据下方链接进行查阅。
echarts-for-react在线示例 https://git.hust.cc/echarts-for-react/
最后
【程序视点】助力打工人减负,从来不是说说而已!
后续小二哥会继续详细分享更多实用的工具和功能。持续关注,这样就不会错过之后的精彩内容啦!~
如果这篇文章对你有帮助的话,别忘了【一键三连】支持下哦~
相关推荐
- 免费查序列号入口(免费查序列号入口平板)
-
苹果查序列号入口可登陆苹果官网checkcoverage.apple.com进行查询,具体步骤如下:1、打开手机设置,点击“通用”;2、进入页面后点击“关于本机”;3、页面跳转后,我们就可以看到本机的...
- 磁盘被保护了如何取消保护(磁盘被保护了如何取消保护设置)
-
1、打开磁盘分区管理窗口中选择要去掉被写保护的磁盘。2、选中磁盘后单击鼠标右键可显示出选项列表下选择属性。3、打开磁盘属性对话框中选择点击硬件选项卡。4、然后在硬件页面中选中所有磁盘后再单击属性按钮。...
- win7系统硬盘分区教程(win7如何对硬盘分区)
-
在Win7中,你可以使用磁盘管理工具来给硬盘分区。首先,打开控制面板,点击“系统和安全”,然后选择“管理工具”。在管理工具中,找到“计算机管理”,点击打开。在计算机管理窗口中,选择“磁盘管理”。在磁盘...
- 电脑不识别移动硬盘怎么办(笔记本电脑不识别移动硬盘怎么办)
-
电脑无法识别移动硬盘的原因有很多,以下是一些可能的原因和相应的解决方法:1.USB供电不足:移动硬盘功率较大,可能需要更多的电压。前置USB接口可能无法提供足够的电压。解决方法是将移动硬盘接到...
- cf穿越火线烟雾头盔怎么调(cf的最新烟雾头盔怎么调)
-
cf新版烟雾保护头盔调置:?cf这款游戏中,更新后调整烟雾头的方法是打开NVIDIA控制面板,在NVIDIA控制面板中选择调整视频颜色设置,接着点击通过NVIDIA设置选项,然后将亮度调整到79%,对...
- u盘怎样格式化最安全(u盘怎么格式化最干净)
-
只需将U盘插入到电脑之后,然后在我的电脑中找到U盘的盘符,使用鼠标右键点击打开菜单,其中就可以看到【格式化】的选项,根据需要选择然后点击【快速格式化】即可U盘格式是FAT32格式,那么其传输速度会明显...
-
- 移动路由器怎么改wifi密码(移动网络路由器怎么改密码wifi密码)
-
1.打开手机设置,找到wifi点击进入,点击已连接的wifi。2.里面有一个路由器的选项,记住路由器后面一串数字。3.打开手机网页,在地址栏输入刚记住的那串数字,点击进入,选择继续访问网页版,输入管理员密码,点击确定。4.点击路由设置,点击...
-
2025-12-23 16:05 liuian
-
- 手机五笔输入法怎么使用(手机五笔怎么用新手教程)
-
手机使用五笔输入法操作方法1、打开手机,点击应用商店,下载搜狗输入法,并安装。2、打开下载后的搜狗输入法,在打开页面勾选搜狗输入法,然后点击启用。3、在弹出页面,点击搜狗输入法。在编辑文字页面,点击如图所示按钮。4、在弹出页面,点击其他输入...
-
2025-12-23 15:55 liuian
- 天翼网关怎么设置wifi(天翼网关怎么设置wifi密码)
-
天翼网关设置wifi的方法步骤如下:首先打开浏览器,在地址栏中输入198.168.1.1,确定。输入用户名、密码,如果以前没改过,这个密码就在网关背面的标签上面,可以去查看一下,输入后点击“确定”。点...
- 十大软件免费下载安装(软件大全下载)
-
以下是十大永久免费电视直播软件APP:央视频(手机端)):官方看电视直播软件,画质清晰,需要借助手机投屏操作。央视投屏助手(盒子端):与央视频配合使用,提供高清电视直播。电视家:智能电视、电视盒子或智...
- 电脑死机咋办(电脑开机蓝屏怎么办)
-
可按照如下方式重启:1、直接按下“CTRL+ALT+DEL”键,然后选择重启;2、如方式1无效,可按住电源键数秒进行强制关机,然后再次启动即可;3、最后一个办法就是,拔出电池和电源适配器,然后重新安装...
- 追剧神器免费下载(苹果手机免费追剧软件)
-
是正规网站茶杯狐官方网站是一款正规的视频播放软件。茶杯狐官方网站拥有各种电影、电视剧、综艺、动漫等视频任由用户们在线自由观看。茶杯狐官方网站所有的视频画质也非常的超清流畅,很安全。茶杯狐软件是很好用的...
- 平板电脑一键root工具(平板电脑 root)
-
1、下载APP:ROOT大师;2、打开小米平板USB调试模式;3、安装驱动,提示连接成功4、获取ROOT权限。5、显示更新成功后依次选择:返回-重新启动-系统6、重启后打开桌面的super...
- 手机u盘驱动器下载(手机u盘驱动器下载安装)
-
不能直接手机下载到u盘,可以下到手机,然后手机连电脑copy到u盘你只需把你心爱的U盘插到电脑上,然后它会有一个新硬安装向导当它要搜索驱动程序时,你只需将其浏览到你所下载的usb万能驱动文件夹点下...
- 一周热门
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
