react+datav+echarts实现可视化数据大屏

本文主要是介绍react+datav+echarts实现可视化数据大屏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

📓最近有点闲,就学习了下react,没想到就把react学完了,觉得还不错,就打算出一把react+datav的简易版可视化数据大屏供大家做个参考。

📓效果如下

1下载必要的框架

       📓 react路由

npm install react-router-dom  --save

      📓  datav框架

npm  install @jiaminghi/data-view-react --save

       📓         echarts

npm install echarts  --save

2,路由设计

        📓在路由上,我是绑定一个index的路由作为组件,然后在index添加自适应的全局容器,当容器设置完成后,就在就在将其他的小的模块给一个个导入进来,

        2.1 在src文件夹下新建文件夹index,index里面新建文件index.jsx

        

        2.2 index.jsx里的代码内容如下

import React, { lazy } from "react";
import style from "../style.module.css"
import { FullScreenContainer, BorderBox11 } from "@jiaminghi/data-view-react";export default function index() {return (<FullScreenContainer >  //我是datav的全局容器组件,自适应组件我是最外层的容器</FullScreenContainer>);
}

        2.3 在app.js里,将index组件绑定我们的路由,这里要注意下 我用的路由是6版本 和5版本有点区别,这里我定义了一个根路由,然后重定向到index路由,index路由绑定我们的Index组件。

import React, { lazy, Suspense } from "react";
import { Route, Routes, Navigate } from "react-router-dom";
const Index = lazy(() => import("./index/index.jsx"));
export default function App() {return (<div><Suspense><Routes><Route path="/" element={<Navigate to="/index" />}></Route><Route path="/index" element={<Index />}></Route></Routes></Suspense></div>);
}

 2.4 查看效果

        📓当出现该内容时,就代表着我们的基础架构已经搭建好 后续我们就要进行分块了

 3.大屏分块

        📓我们在index.jsx里进行区域分块,代码如下     

import React, { lazy } from "react";
import style from "../style.module.css"
import { FullScreenContainer, BorderBox11 } from "@jiaminghi/data-view-react";
export default function index() {return (<FullScreenContainer class={style.box}><BorderBox11 title="香蕉麻花皮测试" class={style.boxa}><div className={style.box1}><div><div className={style.box2}></div><div className={style.box2}></div><div className={style.box2}></div></div><div><div className={style.box2}></div><div className={style.box3}></div></div><div><div className={style.box2}></div><div className={style.box2}></div><div className={style.box2}></div></div></div></BorderBox11></FullScreenContainer>);
}

        📓效果如下

   

4.当根据我们的思路进行分块后,后续我们就要进行对主容器的内容进行填充了 

        4.1 我们创建 8个单独组件,这里我以home1 --  8 来进行命名,

         

               📓 在每个文件夹里新建一个index.jsx的文件

        

 5.在小表格中使用echarts图表,并且渲染到主界面上

                📓我们需要在表格中渲染echarts,并且通过组件引入的方式把他加入到index的主容器当中

                📓小表格的代码如下

import React, { useState, useRef, useEffect } from "react";
import { BorderBox12 } from "@jiaminghi/data-view-react";
import * as echarts from "echarts";
import style from "../style.module.css";
export default function Indexdata() {const chartsNode = useRef(null);const [xdata,setxdata]= useState(["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"])const [ydata,setydata]= useState([150, 230, 224, 218, 135, 147, 260])const mydata = () => {var myChart = echarts.init(chartsNode.current);var option;option = {xAxis: {type: "category",data: xdata,},yAxis: {type: "value",},series: [{data: ydata,type: "bar",},],};option && myChart.setOption(option);};useEffect(() => {mydata();});return (<BorderBox12 class={style.boxc}><div ref={chartsNode} className={style.boxc}></div></BorderBox12>);
}

        📓引入到主体容器当众,并渲染到页面上

        📓效果如下

 

        📓我们在把其他的依次引入,代码如下:

import React, { lazy } from "react";
import style from "../style.module.css"
import { FullScreenContainer, BorderBox11 } from "@jiaminghi/data-view-react";
const Home1 = lazy(() => import("../home1/IndexData"));
const Home2 = lazy(() => import("../home2/index"));
const Home3 = lazy(() => import("../home3/index"));
const Home4 = lazy(() => import("../home4/index"));
const Home5 = lazy(() => import("../home5/index"));
const Home6 = lazy(() => import("../home6/IndexData"));
const Home7 = lazy(() => import("../home7/index"));
const Home8 = lazy(() => import("../home8/Index"));
export default function index() {return (<FullScreenContainer class={style.box}><BorderBox11 title="香蕉麻花皮测试" class={style.boxa}><div className={style.box1}><div><div className={style.box2}><Home1 /></div><div className={style.box2}><Home2 /></div><div className={style.box2}><Home3 /></div></div><div><div className={style.box2}><Home4 /></div><div className={style.box3}><Home8 /></div></div><div><div className={style.box2}><Home5 /></div><div className={style.box2}><Home6 /></div><div className={style.box2}><Home7 /></div></div></div></BorderBox11></FullScreenContainer>);
}

        📓效果图

react的大屏开发还是挺简单的,和vue开发设计思路差不多,就框架的实现代码不一样,最后 贴出源码:

git@gitee.com:hu-wenwu/react-datav-echarts-view.git

这篇关于react+datav+echarts实现可视化数据大屏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/496057

相关文章

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

基于Java实现回调监听工具类

《基于Java实现回调监听工具类》这篇文章主要为大家详细介绍了如何基于Java实现一个回调监听工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录监听接口类 Listenable实际用法打印结果首先,会用到 函数式接口 Consumer, 通过这个可以解耦回调方法,下面先写一个

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

Qt中QGroupBox控件的实现

《Qt中QGroupBox控件的实现》QGroupBox是Qt框架中一个非常有用的控件,它主要用于组织和管理一组相关的控件,本文主要介绍了Qt中QGroupBox控件的实现,具有一定的参考价值,感兴趣... 目录引言一、基本属性二、常用方法2.1 构造函数 2.2 设置标题2.3 设置复选框模式2.4 是否

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

springboot整合阿里云百炼DeepSeek实现sse流式打印的操作方法

《springboot整合阿里云百炼DeepSeek实现sse流式打印的操作方法》:本文主要介绍springboot整合阿里云百炼DeepSeek实现sse流式打印,本文给大家介绍的非常详细,对大... 目录1.开通阿里云百炼,获取到key2.新建SpringBoot项目3.工具类4.启动类5.测试类6.测

pytorch自动求梯度autograd的实现

《pytorch自动求梯度autograd的实现》autograd是一个自动微分引擎,它可以自动计算张量的梯度,本文主要介绍了pytorch自动求梯度autograd的实现,具有一定的参考价值,感兴趣... autograd是pytorch构建神经网络的核心。在 PyTorch 中,结合以下代码例子,当你

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的