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

支持作者的请在git上点个赞吧!!以后会继续分享

  • 15
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
你可以使用ReactDataV来构建可视化大屏编辑器。React是一个用于构建用户界面的JavaScript库,而DataV是一个由阿里巴巴开发的数据可视化工具,可以帮助你快速创建交互式的大屏展示。 下面是一些步骤,可以帮助你开始构建这样的编辑器: 1. 安装React:使用npm或yarn安装React库。可以通过以下命令进行安装: ``` npm install react ``` 2. 创建React应用:使用create-react-app等工具创建一个新的React应用。运行以下命令: ``` npx create-react-app datav-editor ``` 3. 安装DataV:使用npm或yarn安装DataV库。可以通过以下命令进行安装: ``` npm install @antv/data-set npm install @antv/g2 ``` 4. 创建可视化大屏编辑器组件:在React应用中创建一个新的组件,用于展示和编辑可视化大屏。你可以使用DataV提供的图表组件和数据集处理功能来实现可视化效果。 5. 编辑器功能实现:为编辑器组件添加一些功能,比如增加、删除、移动和调整可视化组件的位置和大小等。你可以使用React的状态管理来保存和更新编辑器状态。 6. 保存和导出:实现保存和导出编辑器中的可视化大屏配置。你可以使用浏览器的本地存储或将配置保存到后端服务器。 7. 预览和发布:添加预览功能,让用户可以在编辑器中实时查看可视化大屏的效果。并实现发布功能,将编辑好的可视化大屏展示给其他用户。 以上是一个简单的步骤,可以帮助你开始构建ReactDataV的可视化大屏编辑器。当然,具体的实现还需要根据你的需求进行调整和扩展。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香蕉麻花皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值