0


前端实现自适应屏幕数据可视化大屏(vue + v-scale-screen组件 + dataV组件)

前言
目前市面上有很多付费的数据可视化平台,作为一个代码编程人员,为啥不自己搞一套呢,不仅自己可以增加自己的技能,也可以减少开发成本,何乐而不为呢?
写这篇文章,一方面工作有需求要实现数据可视化大屏,另一方面当然现在也有很多场景都用到数据可视化大屏,如报告总结、数据跟踪等等,在此总结分享给大家,写的不好的地方欢迎指出批评,谢谢。

什么是数据可视化的大屏

众所周知, 未来的数据可视化趋势已成为了必然性,越来越多的企业、政府等的应用场景应用都会普及 ,销售、教育、医疗、贸易等行业领域也涉及广泛 ,根据实时的监控数据,把最新的数据展现在大屏幕上,清楚地看到自己想要看到的数据,同时根据这些数据做出决策的调整。

数据可视化是指通过图表、图形、地图等视觉要素来表现数据中包含的信息的倾向、异常和模式。简而言之,数据可视化是用图形表达数据和信息。

数据可视化大屏幕的优点

1、全面认识数据,是数据更直观清晰
2、支持自由布局
3、低代码开发,轻松搭建

在这我用了vue + v-scale-screen组件 + dataV组件来开发这个功能,也可以用react + r-scale-screen + dataV组件来实现,v-scale-screen和r-scale-screen是大屏自适应容器组件,分别基于VUE框架的和react框架的,如果没有那么多复杂的场景可不考虑使用此组件。

v-scale-screen
大屏自适应容器组件,可用于大屏项目开发,实现屏幕自适应,可根据宽度自适应,高度自适应,和宽高等比例自适应,全屏自适应(会存在拉伸问题),使用时候请根据VUE的版本安装对应的版本,详请阅读v-scale-screen文档。

dataV
大屏可视化组件,具有多种类型的组件可供使用。推荐使用谷歌浏览器,其他浏览器有兼容问题。
使用时注意宽高异常和状态更新的问题。详情请阅读dataV文档。

宽高异常
组件的默认宽高都是100%,可以根据父容器宽高进行自适应,但在某些情况下组件宽高可能表现异常,这种情况一般是因为组件的父容器宽高发生了变化,而组件没有侦知这一变化,你可以在组件上绑定key值,在更改父容器宽高且页面完成重绘后(使用$nextTick),更新key值,使组件强制刷新,以获取正确宽高。

状态更新
避免你的组件更新了数据后,状态却不刷新,也就是没变化,请务必看这里
组件props均未设置deep监听,刷新props时,请直接生成新的props对象(基础数据类型除外),或完成赋值操作后使用ES6拓展运算符生成新的props对象(this.someProps = { …this.someProps })。

首先你得有一个VUE的环境,这里就不过多介绍和安装VUE环境了,直接跳过这一步,然后安装v-scale-screen大屏自适应容器组件。

npm install v-scale-screen 或 yarn add v-scale-screen

在 vue2 中我们使用插件方式导出,故而需要 Vue.use() 进行注册

// main.jsimport Vue from'vue'import VScaleScreen from'v-scale-screen'

Vue.use(VScaleScreen)
<template><v-scale-screen width="1920" height="1080"><div>
      你想添加的模块
    </div></v-scale-screen></template>

Vue3 or Vue2.7 版本

<template><v-scale-screen width="1920" height="1080"><div>
      你想添加的模块
    </div></v-scale-screen></template><script>import{ defineComponent }from'vue'import VScaleScreen from'v-scale-screen'exportdefaultdefineComponent({
  name:'Demo',
  components:{
    VScaleScreen
  }})</script>

注:使用时请将 body 样式设置为 overflow: hidden; 注:使用时请将 body 样式设置为 overflow: hidden; 注:使用时请将 body 样式设置为 overflow: hidden;这里的width和height分别是大屏的宽度和高度

然后我们安装一下dataV组件

npm install @jiaminghi/data-view 或 yarn add @jiaminghi/data-view

使用

// 将自动注册所有组件为全局组件import dataV from'@jiaminghi/data-view'

Vue.use(dataV)

按需引入

import{ borderBox1 }from'@jiaminghi/data-view'

Vue.use(borderBox1)

有的朋友就会问了,为啥安装了dataV组件还要安装v-scale-screen组件呢?dataV不也可以全屏展示自动进行缩放处理吗。这里要解释一波,一个原因是v-scale-screen的自适应的效果比较好,还有就是dataV的局限性。dataV建议在全屏容器内使用百分比搭配flex进行布局,以便于在不同的分辨率下得到较为一致的展示效果。使用前请注意将body的margin设为0,否则会引起计算误差,全屏后不能完全充满屏幕。但是用vue + v-scale-screen包裹一下就不会出现这种问题。这里不推荐使用dataV的全屏容器

总体的代码片段

<v-scale-screen width="1920" height="1080"><div><dv-border-box-1:color="['red', 'green']" backgroundColor="blue">dv-border-box-1</dv-border-box-1><dv-decoration-1:color="['red', 'green']"/>
      你想添加的dataV展示组件。。。
    </div></v-scale-screen>

本文转载自: https://blog.csdn.net/YangJing17/article/details/132606376
版权归原作者 夜轩紫语 所有, 如有侵权,请联系我们删除。

“前端实现自适应屏幕数据可视化大屏(vue + v-scale-screen组件 + dataV组件)”的评论:

还没有评论