当前位置: 首页 > news >正文

07 react+echart+大屏

react+echart+大屏

  • 大屏
  • ECharts 图表
  • 实际
  • 步骤
  • React + Typescript搭建大屏项目,并实现屏幕适配
    • flexible + rem实现适配
      • 1. 安装插件
    • 对echarts进行的React封装,可以用于React项目中,支持JS、TS
      • 如何使用
      • 完整例子
    • 官网参考

大屏

ECharts 图表

ECharts 图表,已经对数据和屏幕改动进行了监听,能够动态渲染图表数据和大小。在监听窗口小大的模块,使用了防抖函数来控制更新频率,节约浏览器性能。

实际

一个基于 React、Dva、DataV、ECharts 框架的 " 数据大屏项目 "。支持数据动态刷新渲染、屏幕适配、数据请求模拟、局部样式、图表自由替换/复用等功能。
项目需要全屏展示(按 F11)。
项目环境:react^16.2、webpack-4.0、npm-6.13、node-v12.16。
请拉取 master 分支的代码,其余是开发分支。

步骤

React + Typescript搭建大屏项目,并实现屏幕适配

flexible + rem实现适配

1. 安装插件

npm i lib-flexible --save
npm i postcss-px2rem --save

安装大屏的插件,也就是将px转换成rem的插件:
对大屏的插件进行配置

对echarts进行的React封装,可以用于React项目中,支持JS、TS

如何使用

  1. 安装
npm install --save echarts-for-react
npm install --save echarts          // echarts-for-react包依赖echarts
  1. 使用
    引入
import ReactEcharts from 'echarts-for-react'

在 render 函数中使用

<ReactEchartsoption={this.getChartOptions()}      // option:图表配置项onEvents={onEvents}notMerge={true}lazyUpdate={true}style={{height: '230px', left: '12px', top: '-8px'}}
/>
  1. ReactEcharts支持参数
  • option(object):必需,图表配置项
  • notMerge(object):可选,是否不跟之前设置的 option 进行合并,默认为 false,即合并
  • lazyUpdate(object):可选,在设置完 option 后是否不立即更新图表,默认为 false,即立即更新
  • style(object):可选,echarts DOM 元素的 style 属性,默认为 { height: ‘300px’ }
  • className(string):可选,echarts DOM 元素的 class 属性
  • theme(string):可选,应用的主题。使用前需要使用 registerTheme 注册主题
  • onChartReady(function):可选,当图表渲染完成,将会回调这个方法,参数为 echarts 对象
  • loadingOption(object):可选,加载动画配置项
  • showLoading(boolean):可选,显示加载动画效果,默认为 false,即隐藏
  • onEvents(array(string => function)):可选,绑定 echarts 事件,通过 echarts 事件对象回调
  • opts(object):可选,echarts事件,通过echarts附加参数,将在echarts实例初始化时被使用

ReactEcharts组件只有一个API getEchartsInstance,利用这个方法可以获取echarts实例对象,从而可以调用echarts实例的所有API。
注册主题:

import echarts from 'echarts';
echarts.registerTheme('my_theme', {backgroundColor: '#f4cccc'
});
<ReactEchartsoption={this.getOption()}theme='my_theme'
/>

onEvents:

let onEvents = {'click': this.onChartClick,'legendselectchanged': this.onChartLegendselectchanged
}
<ReactEchartsoption={this.getOption()}style={{height: '300px', width: '100%'}}onEvents={onEvents}
/>

opts:

<ReactEcharts ref={(e) => {this.echarts_react = e;}}option={this.getOption()}
/>
let echarts_instance = this.echarts_react.getEchartsInstance();
let base64 = echarts_instance.getDataURL();

完整例子

import React from 'react';
import { PageContainer } from '@ant-design/pro-layout';
import ReactEcharts from 'echarts-for-react';export default () => {const lineOption = () => {const option = {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',},],tooltip: {show: true,trigger: 'axis',},};return option;};const onChartClick = (param, echarts) => {console.log(param, echarts);};const onChartLegendselectchanged = (param, echarts) => {console.log(param, echarts);};return (<PageContainer><ReactEchartsoption={lineOption()}onEvents={{click: onChartClick,mousedown: onChartClick,legendselectchanged: onChartLegendselectchanged,}}></ReactEcharts></PageContainer>);
};

效果图展示:
在这里插入图片描述

官网参考

链接: echarts-for-react的git代码库
大屏目录结构参考:
在这里插入图片描述
链接: echarts-for-react的超酷效果展示

相关文章:

07 react+echart+大屏

reactechart大屏大屏ECharts 图表实际步骤React Typescript搭建大屏项目&#xff0c;并实现屏幕适配flexible rem实现适配1. 安装插件对echarts进行的React封装&#xff0c;可以用于React项目中&#xff0c;支持JS、TS如何使用完整例子官网参考大屏 ECharts 图表 ECharts 图…...

Linux/Ubuntu安装部署Odoo15仓管系统,只需不到十步---史上最成功

sudo apt-get update sudo apt install postgresql -y sudo apt-get -f install sudo dpkg -i /home/ubuntu/odoo_15.0.latest_all.deb —报错再次执行上一条命令再执行 —安装包地址&#xff1a;http://nightly.odoo.com/15.0/nightly/deb/–翻到最下面 sudo apt-get ins…...

Python奇异值分解

当AAA是方阵时&#xff0c;可以很容易地进行特征分解&#xff1a;AWΣW−1AW\Sigma W^{-1}AWΣW−1&#xff0c;其中Σ\SigmaΣ是AAA的特征值组成的对角矩阵。如果WWW由标准正交基组成&#xff0c;则W−1WTW^{-1}W^TW−1WT&#xff0c;特征分解可进一步写成WTΣWW^T\Sigma WWTΣ…...

AWS攻略——子网

文章目录分配子网给Public子网分配互联网网关创建互联网网关附加到VPC给Public子网创建路由表关联子网打通Public子网和互联网网关创建Public子网下的EC2进行测试配置Private子网路由给Private子网创建路由表附加在Private子网创建Private子网下的EC2进行测试创建实例在跳板机上…...

java面试 - mq

RocketMq和RabbitMq的优缺点 1、RabbitMQ 优点&#xff1a;rabbitMq 几万级数据量&#xff0c;基于erlang语言开发&#xff0c;因此响应速度快些&#xff0c;并且社区活跃度比较活跃&#xff0c;可视化界面。 缺点&#xff1a;数据吞吐量相对与小一些&#xff0c;并且是基于er…...

PTP GPTP芯片资料翻译88E6352

88E6352应用 网关 车载信息娱乐 车身域控制器 PTP PTP通过周期型地交换控制包实现 选择其中网络最佳质量时钟元素&#xff0c;作为PTP网络中Grand Master.没有Grand Master 节点变成PTP slave节点。PTP节点从Grand Master节点获得他们驱动频率和时间信息。 基本观念是PTP帧…...

用Python实现一个电影订票系统

一、效果展示通过Python实现一个电影订票系统&#xff0c;效果如下所示&#xff1a;二、整体结构图三、代码分解3.1 infos.py一部电影的详细信息适合用 字典 结构来存储&#xff0c;我们可以给字典里添加多个键值对来保存电影的名称、座位表和宣传时用的字符画&#xff0c;比如…...

什么是瞪铃企业

“瞪羚企业”是指创业后跨过死亡谷以科技创新或商业模式创新为支撑进入高成长期的中小企业。认定范围主要是产业领域符合国家和省战略新兴产业发展方向&#xff0c;涵盖新兴工业、新一代信息技术、生物健康、人工智能、金融科技、节能环保、消费升级等领域。按照硅谷的解释&…...

【深度学习】多分类问题和多标签分类问题

上一章——激活函数 文章目录什么是多分类问题Softmax贝叶斯公式softmax的损失函数多标签分类问题什么是多分类问题 在之前的课程中&#xff0c;我们学习了二分问题&#xff0c;二分问题中的所有数据会被分类为0和1&#xff08;或者Ture和False&#xff09;两种输出标签。但是…...

大学生开学买什么,返校必备数码好物推荐

开学还不知道需要准备些什么&#xff0c;这篇开学数码好物&#xff0c;希望能够对你在开学购买的好物有一些帮助&#xff0c;一款好的数码装备&#xff0c;可以让我们在学校学习当中能够用最少的时间&#xff0c;最大的产出&#xff0c;节省时间&#xff0c;提高学习效率&#…...

Unreal Engine06:Actor的实现

写在前面 Actor是可以放进地图的最基本类&#xff0c;这里主要是介绍一下Actor的使用。 一、空间坐标系 1. Actor的变换操作 Actor的变换变换操作主要包括四个部分&#xff1a; 位置&#xff1b;旋转&#xff1b;缩放&#xff1b; 上面三者都是对应三个轴进行变换&#xff1…...

2023美国大学生数学建模竞赛C题思路解析(含代码+数据可视化)

以下为2023美国大学生数学建模竞赛C题思路解析&#xff08;含代码数据可视化&#xff09;规则&#xff1a;猜词&#xff0c;字母猜对&#xff0c;位置不对为黄色&#xff0c;位置对为绿色&#xff0c;两者皆不对为灰色。困难模式下的要求&#xff1a;对于猜对的字母&#xff08…...

aws codebuild 自定义构建环境和本地构建

参考资料 Extending AWS CodeBuild with Custom Build Environments Docker in custom image sample for CodeBuild codebuild自定义构建环境 在创建codebuild项目的时候发现 构建环境是 Docker 映像&#xff0c;其中包含构建和测试项目所需的所有内容的完整文件系统 用ru…...

3年功能3年自动化,从8k到23k的学习过程

简单的先说一下&#xff0c;坐标杭州&#xff0c;14届本科毕业&#xff0c;算上年前在阿里巴巴的面试&#xff0c;一共有面试了有6家公司&#xff08;因为不想请假&#xff0c;因此只是每个晚上去其他公司面试&#xff0c;所以面试的公司比较少&#xff09;其中成功的有4家&…...

leaflet: 数据聚合,显示当前bounds区域中的点的名称列表(078)

第078个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中实现数据聚合的功能 ,左边列出右边可视区域内的marker的名称。这里主要用到了可视区域的范围以及contains函数。 直接复制下面的 vue+leaflet源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方…...

XXL-JOB分布式任务调度框架(一)-基础入门

文章目录1.什么是任务调度2.常见定时任务方案2.1. 传统定时任务方案示例2.2. 缺点分析3.什么是分布式任务调度&#xff1f;3.1. 并行任务调度3.2. 高可用3.3. 弹性扩容3.4. 任务管理与监测4.市面上常见的分布式任务调度产品5.初识xxl-job6.xxl-job架构设计6.1.设计思想6.2.架构…...

基于CentOS 7 搭建Redis 7集群

我们的目标是使用2台&#xff08;多台服务器类似&#xff09;服务器搭建一个3主3从的redis集群。 我们为什么要使用redis 7呢&#xff1f;因为6、7的版本都做了大量优化&#xff0c;比如6引入了多线程&#xff08;一些JAVA八股文面试还喜欢问redis为什么是单线程&#xff09;&…...

Lesson5.3---Python 之 NumPy 统计函数、数据类型和文件操作

一、统计函数 NumPy 能方便地求出统计学常见的描述性统计量。最开始呢&#xff0c;我们还是先导入 numpy。 import numpy as np1. 求平均值 mean() mean() 是默认求出数组内所有元素的平均值。我们使用 np.arange(20).reshape((4,5)) 生成一个初始值默认为 0&#xff0c;终止…...

Puppeteer 爬虫学习

puppeteer简介&#xff1a; Puppeteer 是一个 Node 库&#xff0c;它提供了一个高级 API 来通过 DevTools 协议 控制 Chromium 或 Chrome。Puppeteer 默认以 headless 模式运行&#xff0c; 但是可以通过修改配置文件运行“有头”模式。能作什么&#xff1f;&#xff1a; 生成…...

如何在Power Virtual Agents中实现身份验证

今天我们介绍一下如何通过身份验证的方式来使用Power Virtual Agents。首先进入“Microsoft 365-管理-Azure Active Directory管理中心”。 进入“Azure Active Directory管理中心”后选择“Azure Active Directory”中的“应用注册”-“新注册”。 输入新创建的应用程序名称后…...

金三银四必备软件测试必问面试题

初级软件测试必问面试题1、你的测试职业发展是什么&#xff1f;测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前 3 年积累测试经验&#xff0c;按如何做好测试工程…...

Java反序列化漏洞——CommonsCollections6链分析

一、前因因为在jdk8u71之后的版本中&#xff0c;sun.reflect.annotation.AnnotationInvocationHandler#readObject的逻辑发生了变化&#xff0c;导致CC1中的两个链条都不能使用&#xff0c;所有我们需要找一个在高版本中也可用的链条。/* Gadget chain: java.io.ObjectInputStr…...

Selenium浏览器自动化测试框架

Selenium浏览器自动化测试框架 目录&#xff1a;导读 1、selenium简介 介绍 功能 优势 2、基本使用 3、获取单节点 4、获取多节点 5、节点交互 6、动作链 7、执行JavaScript代码 8、获取节点信息 9、切换frame 10、延时等待 11、前进和后退 12、cookies 13、选…...

Hashmap链表长度大于8真的会变成红黑树吗?

1、本人博客《HashMap、HashSet底层原理分析》 2、本人博客《若debug时显示的Hashmap没有table、size等元素时&#xff0c;查看第19条》 结论 1、链表长度大于8时(插入第9条时)&#xff0c;会触发树化(treeifyBin)方法&#xff0c;但是不一定会树化&#xff0c;若数组大小小于…...

关于接地:数字地、模拟地、信号地、交流地、直流地、屏蔽地、浮地

除了正确进行接地设计、安装,还要正确进行各种不同信号的接地处理。控制系统中&#xff0c;大致有以下几种地线&#xff1a; &#xff08;1&#xff09;数字地&#xff1a;也叫逻辑地&#xff0c;是各种开关量&#xff08;数字量&#xff09;信号的零电位。 &#xff08;2&am…...

排序

一、数据流中的中位数题目描述&#xff1a;如何得到一个数据流中的中位数&#xff1f;如果从数据流中读出奇数个数值&#xff0c;那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值&#xff0c;那么中位数就是所有数值排序之后中间两个数的平均值。…...

Android DataStore Proto存储接入流程详解与使用

一、介绍 通过前面的文字&#xff0c;我们已掌握了DataStore 的存储&#xff0c;但是留下一个尾巴&#xff0c;那就是Proto的接入。 Proto是什么&#xff1f; Protobuf&#xff0c;类似于json和xml&#xff0c;是一种序列化结构数据机制&#xff0c;可以用于数据通讯等场景&a…...

HiEV洞察 | 卖一台亏半台,激光雷达第一股禾赛隐忧仍在

作者 | 感知君Alex 编辑 | 王博2月9日晚&#xff0c;禾赛在万众瞩目下登陆纳斯达克&#xff0c;发行价19美元每股&#xff0c;首日涨超11%&#xff0c;市值超过Luminar&#xff0c;登顶全球市值最高的激光雷达公司。 随后两个交易日&#xff0c;其股价均有不同程度的涨幅&#…...

面试题61. 扑克牌中的顺子

题目 从若干副扑克牌中随机抽 5 张牌&#xff0c;判断是不是一个顺子&#xff0c;即这5张牌是不是连续的。2&#xff5e;10为数字本身&#xff0c;A为1&#xff0c;J为11&#xff0c;Q为12&#xff0c;K为13&#xff0c;而大、小王为 0 &#xff0c;可以看成任意数字。A 不能视…...

有特别有创意的网站设计案例

有人说 UI 设计师集艺术性与科学性于一身&#xff0c;不仅需要对工具的使用熟练&#xff0c;更需要对美术艺术有一定的基础了解。如果想要成为优秀的 UI 设计师是一个需要磨砺的过程&#xff0c;需要不断的学习和积累&#xff0c;多看多练多感受&#xff0c;其中对于优质的设计…...

男生为女生做网站/外贸建站教程

2.1 问题 只有PC可以telnet到防火墙&#xff0c;ISP不能telnet防火墙配置安全策略和服务器发布&#xff0c;使Client1可以访问Server1的HTTP服务配置安全策略和Easy IP&#xff0c;使Server1通过地址转换ping通PC 2.2 方案 搭建实验环境&#xff0c;如图-7所示。 图-7 2.3 步…...

wordpress网站正在建设中/微友圈推广平台怎么加入

文章目录 零、写在前面一、题目描述二、解题思路三、代码详解四、推荐专栏五、习题练习零、写在前面 目前本专栏正在进行优惠活动,在博主主页添加博主好友(好友位没有满的话),可以获取 付费专栏优惠券。   今天是学习 「 C语言 」 打卡的第三十一天,学习方式很简单,每天…...

广告创意设计说明/seo优化便宜

1 JavaScript变量作用域 1.1 函数作用域 没有块作用域&#xff1a;即作用域不是以{}包围的&#xff0c;其作用域完成由函数来决定&#xff0c;因而if /for等语句中的花括号不是独立的作用域。 如前述&#xff0c;JS的在函数中定义的局部变量只对这个函数内部可见&#xff0c;称…...

杭州g20网站建设公司/获客

读书笔记-Effective Java&#xff08;Lambda和Stream&#xff09;42. Lambda优先于匿名类43.方法引用优先于Lambda44.坚持使用标准的函数接口45.谨慎使用Stream46.优先使用Stream中无副作用的函数47.Stream要优先用Collection作为返回类型48.谨慎使用Stream并行42. Lambda优先于…...

电商运营主要做什么工作/网站运营推广选择乐云seo

51nod 1244 莫比乌斯函数之和 莫比乌斯函数&#xff0c;由德国数学家和天文学家莫比乌斯提出。梅滕斯(Mertens)首先使用μ(n)&#xff08;miu(n)&#xff09;作为莫比乌斯函数的记号。具体定义如下&#xff1a; 如果一个数包含平方因子&#xff0c;那么miu(n) 0。例如&#xf…...

怎样做网站结构优化/seo关键词搜索优化

来源&#xff1a;http://www.php.cn/csharp-article-359736.html一、过滤器简介 1.1、理解什么是过滤器 1、过滤器&#xff08;Filters&#xff09;就是向请求处理管道中注入额外的逻辑。提供了一个简单而优雅的方式来实现横切关注点。 2、所谓的过滤器&#xff08;Filters&…...