DataV(@kjgl77/datav-vue3)是专为“大屏可视化”场景打造的 Vue3 组件库,提供边框、装饰、等数十个开箱即用的视觉组件。本文聚焦 “在 Vue3 项目中如何正确使用 DataV”,从安装、全局注册到常见坑点,带你迅速玩转这款酷炫的 UI 套件。
1. 安装依赖
# NPM / Yarn / PNPM 均可
npm i @kjgl77/datav-vue3 -S
DataV 使用 SVG + CSS 动画 实现,体积轻量且无其他强依赖。
2. 全局引入 vs 按需引入
2.1 全局引入(推荐大屏项目)
// src/main.ts
import { createApp } from 'vue'
import App from './App.vue'
import DataVVue3 from '@kjgl77/datav-vue3'
createApp(App).use(DataVVue3).mount('#app')
- 所有组件会自动注册为 kebab-case 标签,例如
dv-border-box-1
、dv-decoration-3
、dv-scroll-board
。
2.2 按需引入(组件级使用)
<script setup lang="ts">
import { BorderBox1, Decoration2 } from '@kjgl77/datav-vue3'
</script><template><border-box-1 style="width:400px;height:200px;"><decoration-2 :reverse="true" style="width:380px;height:5px;" /></border-box-1>
</template>
- 按需引入仍需
import '.../styles/index.css'
,否则动画样式会丢失。
3. DataV 组件一览
分类 | 组件示例 | 典型用法 |
---|---|---|
边框 | dv-border-box-1 ~ 13 | 作为容器包装业务组件 |
装饰 | dv-decoration-1 ~ 12 | 页面点缀、分割线 |
官方 Demo + 文档:https://datav-vue3.jiaminghi.com/
4. 快速示例:边框 + 装饰
<template>
<div style="color:white;display:flex;gap:20px;justify-content:center;margin-top:15px;"><!-- dv-border-box-1 示例,必须指定宽高 --><dv-border-box-1 :color="['#0ff','#00faff']" style="width:300px;height:150px;display:flex;align-items:center;justify-content:center;">dv-border-box-1</dv-border-box-1><!-- dv-border-box-2 示例 --><dv-border-box-2 style="width:300px;height:150px;display:flex;align-items:center;justify-content:center;">dv-border-box-2</dv-border-box-2></div>
</template><style scoped>
.content{display:flex;flex-direction:column;align-items:center;color:#fff;}
</style>
要点:
- 宽高必填 —— 边框/装饰默认
100%
自适应,如果父级尺寸为auto
则 SVG 宽高 = 0,导致组件不渲染。 - 自定义颜色 —— 大多数组件支持
:color="['主色', '辅色']"
,装饰组件还可通过:dur="动画周期(s)"
调节速度。
5. 常见坑 & FAQ
问题 | 处理方案 |
---|---|
组件不显示/无动画 | 检查父元素是否有宽高;浏览器控制台确认标签名使用 kebab-case(dv-border-box-1 而不是 BorderBox1 )。 |
边框宽高异常 | 当父容器重新调整尺寸后,调用边框实例的 initWH() 重新计算;或通过 key 触发组件重渲染。 |
样式冲突 | 将业务 DOM 放入边框默认插槽的 唯一子元素 内部,并为其设置内部布局,避免直接对 .dv-border-box-content 作用 CSS。 |
页面白屏、控制台报错 ResizeObserver loop limit exceeded | 在极少数浏览器下快速切换路由可能触发警告,可忽略;如需消除,在处理 beforeUnmount 时注销定时器/监听器。 |
6. 结语
DataV 让 Vue3 的大屏项目“信手拈来”:
- 快速:几十个组件全局注册即用,省去设计时间。
- 轻量:SVG 实现,不依赖 Canvas,兼容移动端。
- 可扩展:源码开源,可二次开发适配业务。
如果你正在为大屏展示、运营监控、物联网可视化头疼,不妨尝试 @kjgl77/datav-vue3。
一句 app.use(DataVVue3)
,炫酷动画瞬间到位!