“实时数据大屏2k、4k、8k”这样做【高级前端必备技能之一】

🔥废话不多先上效果图

在这里插入图片描述

🔥划重点

新手程序员需要注意以下几点:

  1. 我们需要进行充分的技术调研,进行技术选型
  2. 产品,UI,再三确认效果图是否确定,避免后续出现返工的情况

不能拿到效果图之后,一股脑就开始排期,进入开发流程,首先和产品以及UI等同事确认好之后,分析是否存在比较难实现的效果,提出来,大家一起想替换方案,避免后期因为某些效果不能实现阻塞整体的开发进度,这也算是一些日常工作中的一些需要注意的地方。

🔥 技术选型

数据统计大屏,目前市面主流的技术 Echarts 和 阿里旗下的 AntV 这两大厂商做的还是很好的,根据效果图中的图表,在对应的官网,文档中浏览,找到一个图表比较全的,文档比较清晰的图表库,按照到文档的流程安装到项目中。

  1. AntV 官网
  2. Echarts官网

🔥图表组件开发

完成技术选型之后,我们就可以进行前端静态页面的开发,按照组件化的开发思维,对页面进行合理的组件划分,提高代码复用性的同时也便于后期维护。
我们选择 Echarts 图表库,可以结合自身需求进行选择
下面是一个毛坯版本的柱状图组件,要实现效果图比较炫酷的效果,我们只需要基于这个毛坯版本,按照官网文档提供的方法,对一些图表的颜色**(线条颜色、文本颜色、图表颜色、lenged颜色)**进行个性化的设置即可满足效果。
在这里插入图片描述

<template><div ref="dom" class="charts chart-bar"></div>
</template><script>
import echarts from "echarts";
import { on, off } from "@/libs/tools";
export default {name: "ChartBar",props: {value: Object,text: String,name: String,conversion: {default: false,},},data() {return {dom: null,};},methods: {resize() {this.dom.resize();},initChart() {this.$nextTick(() => {let option = {title: {text: this.text,left: "left",textStyle: {fontSize: 16,fontStyle: "normal",color: "#333",},},tooltip: {backgroundColor: "rgba(0,0,0,0.8)",padding: [10, 15, 10, 15],trigger: "item",formatter: "{a} <br/>{b} : {c}",},grid: {top: "30px",left: "20px",right: "20px",bottom: "0px",containLabel: true,},xAxis: [{type: "category",data: this.value.xAxis.data,axisTick: {alignWithLabel: true,},axisLabel: {color: "#333",},axisLine: {show: true,lineStyle: {color: "#DDDDDD",width: 1,},},},],yAxis: [{type: "value",axisTick: {show:false,alignWithLabel: false,},splitLine: {show: true,lineStyle: {type: "dashed",},},axisLabel: {color: "#333",},axisLine: {show: true,lineStyle: {color: "#DDDDDD",width: 1,},},},],series: [{name: this.name,type: "bar",barWidth: "24px",itemStyle: {color: "#4586FF",},label: {show: true,position: "top",color: "#333",},data: this.value.series.data,},],};this.dom.setOption(option);// 防止初始化时图表大小错误this.resize();});},},onMo() {this.dom = echarts.init(this.$refs.dom, "tdTheme");on(window, "resize", this.resize);},beforeDestroy() {off(window, "resize", this.resize);},watch: {value: {handler(val, oldVal) {this.initChart();},deep: true,immediate: true,},},
};

🔥组件使用

<chart-bar:showLegend="true"style="width: 900px; height: 700px":value="MapData"text="柱状图"name="星座图"
/>

🔥屏幕适配

F12 之后选择手机Ipad模式,选择 Edit 自定义 屏幕的宽高,可以自定义 比如 4K分辨率8K分辨率,满足业务需求即可。
后续在开发调试,可以选择不同的设备进行适配兼容。个人可以根据自身情况选择布局模式(百分比rempostcss插件等)均可,已实现业务需求为主。
在这里插入图片描述

🔥实时数据获取

目前有三种方案:

  1. 前端定时轮询(不太建议)
  2. SSE后端主动推送(建议)
  3. WebSocket 通信(不建议)

🦟 首先说为什么不建议第三种,有点复杂,不管前端还是后端,有点打炮打蚊子嫌疑,完全没必要
🦟大多数可能都采用第一种方案,毕竟第一种方案完全不需要后端配合,只需要前端定时的去轮询调用查询接口即可,但是要需要注意,轮询也有很多弊端,详情见之前的文章,感兴趣的可以看看
https://blog.csdn.net/weixin_43742274/article/details/139918425?spm=1001.2014.3001.5502
🦟 第二种方案相对第一种和第三种我个人觉得是最好的,但是要需要后端同学配合
大家可以根据自己公司的调性进行选型,因为我们公司比较注重性能、信息安全这类的采用的第二种

🔥 结语

本文主要介绍,从0到1 实现一个实时数据大屏的基本过程,这个大体的技术框架基本可以覆盖市面上80%的公司业务需求,除非有些特殊的大屏需要做特殊处理,希望这篇文章能够给你带来一些技术上的提升。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/37731.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【分布式计算框架 MapReduce】MapReduce 初级编程

目录 一、MapReduce 示例程序的导入并运行测试 二、准备 4 个小文件&#xff08;文件大小分别为 1.7M&#xff0c;5.1M&#xff0c;3.4M&#xff0c;6.8M&#xff09; 1. 第一种情况&#xff0c;默认分片&#xff1a;不修改程序代码&#xff0c;直接使用 WordCount 源程序 2…

电脑提示vcomp140.dll丢失的几种有效的解决方法,轻松搞定dll问题

在电脑使用过程中&#xff0c;我们可能会遇到一些错误提示&#xff0c;其中之一就是找不到vcomp140.dll。那么&#xff0c;究竟什么是vcomp140.dll呢&#xff1f;为什么会出现找不到vcomp140.dll的情况呢&#xff1f;本文将从vcomp140.dll的定义、常见原因、对电脑的影响以及解…

19.《C语言》——【如何理解static和extern?】

&#x1f387;开场语 亲爱的读者&#xff0c;大家好&#xff01;我是一名正在学习编程的高校生。在这个博客里&#xff0c;我将和大家一起探讨编程技巧、分享实用工具&#xff0c;并交流学习心得。希望通过我的博客&#xff0c;你能学到有用的知识&#xff0c;提高自己的技能&a…

解锁iCloud的全能潜力:从新手到专家的终极指南!

在今天这个数字化日益发达的时代&#xff0c;云服务已经成为我们生活中不可或缺的一部分。苹果公司的iCloud服务&#xff0c;作为一个集成的云服务平台&#xff0c;为用户提供了数据存储、备份、同步等多样化的功能。通过本文&#xff0c;我们将深入探讨如何高效利用iCloud&…

[单机版架设]新天堂2-死亡骑士338|带AI机器人

前言 今天给大家带来一款单机游戏的架设&#xff1a;新天堂2-死亡骑士338单机服务端—带AI机器人 如今市面上的资源参差不齐&#xff0c;大部分的都不能运行&#xff0c;本人亲自测试&#xff0c;运行视频如下&#xff1a; 新天堂2 搭建教程 此游戏架设不需要虚拟机&#xf…

识图生成代码:通义千问vsGPt4o,有点小崩

今日对比一下通义千问和GPt4o&#xff0c;在通过识别图片然后去生成前端代码 在当今ai的时代&#xff0c;通过ai去生成页面的代码可以很大的提高我们的开发效率下面是我们要求的生成的图片截图&#xff0c;这是掘金的榜单 效果对比 首先我们使用通义千问&#xff0c;让他去帮我…

Django 自定义过滤器

1&#xff0c;编写自定义过滤器并注册 创建目录 Test/app5/templatetags 分别创建文件 Test/app5/templatetags/__init__.py Test/app5/templatetags/myfilter.py 添加过滤器脚本 Test/app5/templatetags/myfilter.py from django import template register template.…

Python功能制作之使用streamlit做一个简单的WebUI

使用Streamlit创建WebUI 1. 什么是Streamlit Streamlit 是一个开源的Python库&#xff0c;用于快速创建美观的Web应用。 它适合数据科学家和机器学习工程师&#xff0c;因为它能够以最小的代码量将数据应用程序带到浏览器中。通过简单的Python脚本&#xff0c;可以创建交互式…

c++类和对象(三)日期类

类和对象 一.拷贝构造函数定义二.拷贝构造函数特征三.const成员函数权限权限的缩小权限的缩放大 四.隐式类型转换 一.拷贝构造函数定义 拷贝构造函数&#xff1a;只有单个形参&#xff0c;该形参是对本类类型对象的引用(一般常用const修饰)&#xff0c;在用已存 在的类类型对象…

kettle创建资源库无法登录问题

问题&#xff1a;You dont seem to be getting a connection to the server. Please check the path youre using and make sure the server is up and running. 1. 删除资源库 2.删除数据库中R_开头的表 3.重新创建资源库连接&#xff0c;查看是否成功产生表 4.创建成功&…

005-GeoGebra基础篇-GeoGebra的矩形

上一篇关于点的介绍已经触及到了诸多GeoGebra的基础操作&#xff0c;这一篇我们根据画矩形&#xff0c;继续探索GeoGebra。 目录 一、最粗暴的方式绘制矩形1. 使用“Polygon”工具直接绘制2. 注意看代数列表3. 关于矩形和线段 二、用点和线段绘制矩形&#xff08;1&#xff09;…

52、基于K 均值聚类实现基于颜色的分割(matlab)

1、K 均值聚类实现基于颜色的分割原理及流程 K 均值聚类是一种常用的聚类算法&#xff0c;通过将数据点分配到 K 个簇中&#xff0c;每个簇的中心代表簇的平均值来实现聚类的目的。 基于颜色的分割的原理是利用像素的颜色信息来对图像进行分割。首先需要将图像的每个像素点表…

计算机网络微课堂(湖科大教书匠)TCP部分

计算机网络微课堂&#xff08;湖科大教书匠&#xff09;TCP部分 【计算机网络微课堂&#xff08;有字幕无背景音乐版&#xff09;】 TCP的流量控制 一般来说&#xff0c;我们希望数据传输得更快一些。但如果发送方把数据发送得过快&#xff0c;接收方就可能来不及接收&#…

KV260视觉AI套件--开箱报告

目录 1. 简介 2. 与 Zynq 的渊源 3. 官方的入门步骤 4. 总结 1. 简介 传统的ARMFPGA或DSPFPGA控制方案在软件、逻辑、硬件以及系统工程的协同调试中&#xff0c;往往需要团队成员之间严格按照预定计划和接口规范进行分工合作&#xff0c;这不仅增加了测试过程的复杂性&…

《概率论与数理统计》期末复习笔记_上

目录 第1章 随机事件与概率 1.1 随机事件 1.2 事件的关系与运算 1.3 概率的定义与性质 1.4 古典概型_重点 1.5 几何概型 1.6 条件概率与乘法公式 1.7 全概率公式与贝叶斯公式_重点 1.8 事件的独立性_重点 1.9 伯努利概型_重难点 第2章 随机变量及其分布 2.1 随机变…

实验2 色彩模式转换

1. 实验目的 ①了解常用的色彩模式&#xff0c;理解色彩模式转换原理&#xff1b; ②掌握Photoshop中常用的颜色管理工具和色彩模式转换方法&#xff1b; ③掌握使用Matlab/PythonOpenCV编程实现色彩模式转换的方法。 2. 实验内容 ①使用Photoshop中的颜色管理工具&#xff…

第0章_项目方案介绍

文章目录 第0章 项目方案介绍0.1 功能介绍0.2 硬件方案0.3 软件方案0.3.1 上位机方案0.3.2 **中控方案**0.3.3 **传感器方案**0.3.4 **技术难点** 第0章 项目方案介绍 0.1 功能介绍 本课程来自一个真实项目&#xff1a;多个气体传感器的管理。由于气体传感器比较昂贵&#xf…

比尔盖茨:Agent将是AI最大的赛道

Agent不仅将改变人们与计算机的互动方式&#xff0c;还将颠覆软件行业&#xff0c;引发自从我们从键入命令到点击图标以来计算机领域的最大革命。 保罗艾伦和我一起创立微软的至今&#xff0c;我对软件的热爱至今依然不减。 然而&#xff0c;尽管在过去的几十年中软件已经取得…

Vue.js 和 Node.js 全栈项目的运行与部署指南

Vue.js 和 Node.js 全栈项目的运行与部署指南 前言具体运行方式导入数据库初始化安装配置nodejs启动server后端启动client前端确保前后端正确连接 前言 本博客用来介绍一下一个包含前端和后端代码的全栈项目MoreMall&#xff0c;前端部分使用了 Vue.js&#xff0c;后端部分使用…

多阶段分层构建容器化Spring Boot应用程序

上一节中&#xff0c;容器化spring boot应用程序-CSDN博客我们介绍了基于简单的Dockerfile对spring boot进行容器化的过程&#xff0c;本讲将介绍如何基于Dockerfile进行多阶段的分层构建过程&#xff0c;希望对大家有所帮助。 Spring Boot从版本2.3.0开始支持分层构建容器化的…