Vue3 + Vite + TypeScript + dataV 打造可视化大屏

这篇具有很好参考价值的文章主要介绍了Vue3 + Vite + TypeScript + dataV 打造可视化大屏。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

网上有许多开源的可视化大屏项目,但是分析之后,还是想自己从 0 搭建一个可视化大屏项目,毕竟 Vue 一直在更新,自己搭建的可以使用最新版本的 Vue ,如果对版本没有太多要求的小伙伴们选择那些开源项目的基础上去修改也是很不错的。其次自己搭建一个项目,可以更好的了解具体的实现方式。当然这个项目中还是会引用一些组件库。

创建 Vue3 + TypeScript + Vite 项目

这里就不过多去介绍了,创建项目大家都会,我这里就使用 WebStorm 去创建一个项目,node 我选用 18.6.0版本的
Vue3 + Vite + TypeScript + dataV 打造可视化大屏

项目创建好之后,我们先来引入一个组件库 DataV Vue3。这个组件库是在 DataV 的基础上重构的

引入 DataV Vue3

  • 首先为什选择 DataV Vue3 ,是因为 DataV 虽然有 Vue2,Vue3,React 各个版本的,但是 Vue3 版本的不支持 Vite
  • 其次,为什么要使用 DataV Vue3 ,是因为这里为我们封装好了一些酷炫的边框、装饰、图表之类的组件,我们可以拿过来直接使用
  • 安装
npm install @kjgl77/datav-vue3
  • 全局引入(也可以按需引入,考虑到每个页面都可能会用到,所以这里直接在 main.ts 中全局引入)
// main.ts中全局引入
import {
    createApp } from 'vue'
import DataVVue3 from '@kjgl77/datav-vue3'

const app = createApp(App)

app.use(DataVVue3)
app.mount('#app')

接下来就该屏幕适配的问题了,虽然 DataV Vue3 中有全局容器 <dv-full-screen-container>,但是官方文档中建议在全屏容器内使用百分比搭配 flex 进行布局,以便于在不同的分辨率下得到较为一致的展示效果。 并且使用前请注意将 body 的 margin 设为 0 ,否则会引起计算误差,全屏后不能完全充满屏幕。我还是倾向于直接使用 px 或者 vw、vh 布局,所以打算自己去进行屏幕的适配。

屏幕适配

屏幕适配大概有这几种方式:rem、scale、vw 和 vh、以及 DataV Vue3 中的全局容器,这些方式都可以很好的去进行适配,具体选用哪种方法就看各人的喜好以及项目的需求了。个人比较推荐 scale 这种方式,所以这里就采用 scale 方式来进行屏幕适配

scale 方式

实现思路

scale 方式,大家都知道就是等比例缩放。一般情况下,我们的设计稿尺寸都是 1920*1080 (具体尺寸可以提前和 UI 沟通好),我们就以这个尺寸作为我们需要保持的默认的宽高比例,然后我们使用 window.innerWidth 、 window.innerHeight 获取浏览器窗口内部的宽度和高度,之后根据浏览器窗口内部的宽高比和默认的宽高比来计算出需要缩放的比例就可以了。

代码

我们对其进行封装提取,在 utils 文件夹中新建一个 scalingRatio.ts 文件文章来源地址https://www.toymoban.com/news/detail-438511.html

import {
    ref } from 'vue'

export default function useDraw() {
   
  // 指向最外层容器
  const appRef = ref()
  // 定时函数
  const timer = ref(0)
  // 默认缩放值
  const scale = {
   
    width: '1',
    height: '1',
  }
  // 设计稿尺寸(px)
  const baseWidth = 1920
  const baseHeight = 1080

  // 需保持的比例
  const baseProportion = parseFloat((baseWidth / baseHeight).toFixed(5))
  const calcRate = () => {
   
    // 当前宽高比
    const currentRate = parseFloat((window.innerWidth / window

到了这里,关于Vue3 + Vite + TypeScript + dataV 打造可视化大屏的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue2+datav可视化数据大屏(3)附自适应各分辨率的大屏框架git代码。

    接上一节所说,当我们将接口封装完了后,我们需要给大屏进行内容填充啦         📓 我们在ser-views文件夹下新建9个vue组件,如下图所示,我给编号为1到9          📓在组件里写入内容我是第一块...一次类推,一直到第九块         📓 在主容器中引入组件,并注册

    2024年04月14日
    浏览(45)
  • 大数据系列 | 阿里云datav数据可视化(使用json文件生成可视化动态图标)

    简介 DataV 数据可视化是搭建每年天猫双十一作战大屏的幕后功臣,ECharts 是广受数据可视化从业者推崇的开源图表库。从今天开始,DataV 企业版接入了 ECharts 图表组件,当你使用 DataV 搭建可视化项目时,可以轻松地插入 ECharts,这意味着更丰富多样的图表效果,也让编程小白

    2024年02月12日
    浏览(45)
  • 【开源项目】低代码数据可视化开发平台-Datav

    Datav是一个Vue3搭建的低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可完成业务需求。 它的技术栈为:Vue3 + TypeScript4 + Vite2 + ECharts5 + Axios + Pinia2 预览地址: https://datav.pengxiaotian.com/ https://gitee.com/pengxiaotian/datav-vue 💪 Vue 3.0+ ⚡ Vite 3.0+ 🍍 Pini

    2024年02月15日
    浏览(54)
  • jiaminghi/data-view是什么?(DataV,dv大屏数据可视化开源组件库)

    简述:相信大家在平时工作中,难免会遇到开发大屏的需求,页面中有很多比较炫酷的CSS效果。这里给大家推荐一款大屏数据展示组件库,里面有各种边框、装饰、图标、飞线图、水位图、轮播表等等,支持vue和react,有很多炫酷效果,下面给大家介绍一下; 具体使用方法:

    2024年02月11日
    浏览(30)
  • vue3 | 数据可视化实现数字滚动特效

    vue3不支持vue-count-to插件,无法使用vue-count-to实现数字动效,数字自动分割,vue-count-to主要针对vue2使用,vue3按照会报错: TypeError: Cannot read properties of undefined (reading \\\'_c\\\') 的错误信息。这个时候我们只能自己封装一个CountTo组件实现数字动效。先来看效果图: 使用Vue.component定义公

    2024年02月02日
    浏览(34)
  • 记录vue3+echarts搭建数据可视化页面!

    提示:记录一下写页面的时候遇到过的一些小问题! 页面布局就是简单的用了个三栏式布局,在写页面的过程中对于多个页面共同使用的部分要注意善用组件复用,避免写冗余重复的代码! 比如说对于需要重复使用的图表容器,可以将其注册为全局组件V3Echarts.vue,当需要表

    2024年02月16日
    浏览(45)
  • Vue3实现可视化拖拽标签小程序

    实现功能:可视化标签拖拽,双击标签可修改标签内容 一个大DIV包含里面存放两个DIV一个input header为头部标签名称 内容区域绑定双击鼠标事件,触发开始修改事件(startEditing),使用v-if进行标签的显示和隐藏操作 input标签,事件绑定为修改内容,绑定获取焦点事件(@blue=“

    2024年02月09日
    浏览(40)
  • Vue3 +Echarts5 可视化大屏——屏幕适配

    项目基于Vue3 + Echarts5 开发,屏幕适配是使用 scale 方案 Echarts组件按需引入,减少打包体积 地图组件封装(全国省份地图按需加载) 效果图: 大屏适配常用的方案有 rem + vw/vh 和 scale 。 rem + vw/vh 方案 结合使用rem(相对于根元素字体大小的单位)和vw/vh(视窗宽度/高度的单位

    2024年02月15日
    浏览(38)
  • Vite+Vue+iClient for Leaflet引入并实现MapV/Eharts第三方可视化库示例

    作者:gaogy 最近很多小伙伴咨询关于基于Vue3框架搭建iClent开发环境并使用Echarts与MapV等第三方可视化库的问题。本文就以iClient for Leaflet为例,在新一代前端框架构建工具Vite与Vue3项目中,演示如何搭建iClent开发环境并使用Echarts与MapV等第三方可视化库。 本文所使用的依赖与配

    2024年02月06日
    浏览(36)
  • 一个Vue3搭建的低代码数据可视化开发平台

    Vue.js是一款基于MVVM模式的JavaScript框架,通过其简洁、高效的语法和强大的功能,帮助开发者构建出更加灵活、快速和可维护的Web应用。与其他框架相比,Vue区别于市场上的繁杂,它注重易用性和迅速上手的优势,给开发者提供了更大的自由度。无论是用于构建简单的个人项

    2024年02月14日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包