vue2+datav可视化数据大屏(1)

开始 

       📓 最近打算出一个前端可视化数据大屏的系列专栏,这次将很全面的教大家设计可视化大屏,从开始到打包结束,其中,包括如何设计框架,如何封装axios,等等,本次使用的数据均为mock数据。与正常使用一致。本文会从开始的创建vue3项目到最后的项目打包,本篇共计4小节。

1.安装脚手架

       📓 首先确保电脑上安装node.js,node安装简单,去官网下载安装包一件安装即可,当安装了node.js后,我们新建一个文件夹,用vscode打开文件夹,打开终端,安装脚手架。 

npm install -g @vue/cli

📓脚手架安装一次即可,后续在创建vue项目就不需要在重新安装脚手架

2,创建vue2项目

        📓打开vscode 在终端输入 ,myapp是我们的项目名称

 vue create myapp

       📓 选择我们需要的内容,这里需要的是vue-router,其他的按自己的需需求选择

        

3.下载我们需要的第三方库

        📓这里我们需要的是,moke,datav,echarts,axios

        📓在控制台下载即可

        📓下载mock

npm install mockjs --save-dev

        📓下载datav

npm install @jiaminghi/data-view  --save

       📓下载axios

npm install axios --save

        📓下载echarts

npm install echarts  --save

4.在页面上使用datav

           📓在src文件夹下面,有个app.vue的入口文件,我们将这个文件处理下,将一些无语的代码删除,保留如下代码

         📓将src--views下的vue文件全部删除

         📓在views创建一个新的文件 IndexData.vue,并在里面写入如下代码

<template>
    <div>
        {{ a }}
    </div>
</template>
<script>
export default{
    data(){
        return{
            a:"123"
        }
    }
}
</script>
<style>

</style>

        📓在src--router文件夹下 将该组件绑定路由

import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

const routes = [
  {
    path: '/',
    name: 'home',
    component: ()=>import("../views/IndexData.vue")
  },

]

const router = new VueRouter({
  routes
})

export default router

        📓然后启动服务,当页面上出现123时间,就代表着配置成功

 5.配置第一个datav组件

        5.1 📓在src下的main.js文件里面,完全引入我们的datav组件

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import dataV from '@jiaminghi/data-view'  //导入datav框架
Vue.config.productionTip = false
Vue.use(dataV)  //添加到vue原型里去
new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

        5.2 📓在页面上使用我们的datav组件

<template>
    <div>
        <!-- 引入组件 -->
        <dv-water-level-pond :config="config" style="width:150px;height:200px" /> 
    </div>
</template>
<script>
export default{
    data(){
        return{
            config:{ //传入组件数据
                data:[66]
            }
        }
    }
}
</script>
<style>

</style>

        5.3 📓当出现下方的效果时,就代表着使用成功

        

6,设计主体框架

        📓我打算在indexdata.vue里作为组件的容器,在容器里设计骨架,将其他的内容作为骨架填入,代码如下

        

<template>
    <!-- 全屏容器 -->
    <dv-full-screen-container style="background-color: black;">
        <dv-border-box-11 title="香蕉麻花皮演示">
            <!-- 我这里将页面分为上中下三块,这是第一块 -->
            <div class="box">
                <!-- 在里面在分成左中右3块 -->
                <div class="box1">
                    <dv-border-box-12>dv-border-box-1</dv-border-box-12>
                </div>
                <div class="box1">
                    <dv-border-box-2>dv-border-box-1</dv-border-box-2>
                </div>
                <div class="box1">
                    <dv-border-box-10>dv-border-box-1</dv-border-box-10>
                </div>
            </div>
            <!-- 第二块 -->
            <div class="box">
                <!-- 在里面在分成左中右3块 -->
                <div class="box1">
                    <dv-border-box-9>dv-border-box-1</dv-border-box-9>
                </div>
                <div class="box1">
                    <dv-border-box-8>dv-border-box-1</dv-border-box-8>
                </div>
                <div class="box1">
                    <dv-border-box-7>dv-border-box-1</dv-border-box-7>
                </div>
            </div>
            <!-- 第三块 -->
            <div class="box">
                <!-- 在里面在分成左中右3块 -->
                <div class="box1">
                    <dv-border-box-2>dv-border-box-1</dv-border-box-2>
                </div>
                <div class="box1">
                    <dv-border-box-3>dv-border-box-1</dv-border-box-3>
                </div>
                <div class="box1">
                    <dv-border-box-8>dv-border-box-1</dv-border-box-8>
                </div>
            </div>
        </dv-border-box-11>
    </dv-full-screen-container>
</template>
<script>
export default {
    data() {
        return {
            config: { //传入组件数据

            }
        }
    }
}
</script>
<style scoped>
.box1 {
    width: 610px;
    height: 310px;
}
.box{
    display: flex;
    justify-content: space-between; 
    width: 98%;
    margin: auto;
    padding-top: 40px;
}
</style>

       📓效果如下

📓 后续我们只需要往骨架里面填充echarts或者是其他需要展示的代码就行

📓在提一嘴 datav需要将padding和margin的初始值设置为0,不然会出现样式问题

📓在commponents里新建文件夹index.css,在文件夹里写入内容

 📓在manin.js里引入这个css文件即可

 📓下期我们讲如何添加内容和使用moke来模拟数据

📓拜拜

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于AllowBeanDefinitionOverriding属性设置问题

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是「奇点」&#xff0c;江湖人称 singularity。刚工作几年&#xff0c;想和大家一同进步&#x1f91d;&#x1f91d; 一位上进心十足的【Java ToB端大厂…

二叉树的OJ练习(二)

通过前序遍历数组构建二叉树 题目&#xff1a;通过前序遍历的数组&#xff08;ABD##E#H##CF##G##&#xff09;构建二叉树 TreeNode* TreeCreat(char* a,int* pi) {if(a[*pi] #){(*pi);return NULL; }TreeNode* root (TreeNode*)malloc(sizeof(TreeNode));if(root NULL){p…

【Unity动画】Avatar Mask

创建 Avatar Mask可以设置那一部分骨骼运动和不运动 然后放在状态机里面的层中来混合 【后续完善】

前端入门:HTML初级指南,网页的简单实现!

代码部分&#xff1a; <!DOCTYPE html> <!-- 上方为DOCTYPE声明&#xff0c;指定文档类型为HTML --> <html lang"en"> <!-- html标签为整个页面的根元素 --> <head> <!-- title标签用于定义文档标题 --> <title>初始HT…

快速测试 3节点的redis sentinel集群宕机2个节点以后是否仍能正常使用

有同事问我&#xff0c;三个redis sentinel节点&#xff0c;宕机两个节点以后&#xff0c;是否还能够正常的通过redis sentinel正常访问redis的数据。我想了想&#xff0c;理论上是可以的&#xff0c;但是我没试过&#xff0c;今天有时间就测试了一下。搭建环境和测试代码的过程…

Linux Component概述和高通component的使用

1 Linux为什么要引入Component框架&#xff1f; 为了让subsystem按照一定顺序初始化设备才提出来的。 subsystem中由很多设备模块&#xff0c;内核加载这些模块的时间不确定。子系统内有些模块是需要依赖其它模块先初始化才能进行自己初始化工作(例如v4l2 subdev和v4l2 video …

虚拟化之通用计时器

Arm架构包含通用定时器(Generic Timer),这是每个处理器中都有的一组标准化定时器。通用定时器包括一组比较器,这些比较器与一个共同的系统计数进行比较。当比较器的值等于或小于系统计数时,该比较器会生成中断。在下图中,我们可以看到系统中的通用定时器(橙色)以及其比…

HTML+CSS+JavaScript制作简单轮播图

一 运行效果 二 图片资源 三 代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>img{position:absolute;top:6%;left:20%;width:800px;height:240px;}.picture {back…

【FMCW毫米波雷达设计 】 — FMCW波形

原书&#xff1a;FMCW Radar Design 1 引言 本章研究驱动FMCW雷达的主要波形:线性调频(LFM)波形。我们研究信号的行为及其性质。随后&#xff0c;本章讨论了匹配滤波理论&#xff0c;并研究了压缩这种波形的技术&#xff0c;特别是所谓的拉伸处理&#xff0c;它赋予FMCW雷达极…

最长子序列问题(LCS)--动态规划解法

题目描述&#xff1a; 如果Z既是X的子序列&#xff0c;又是Y的子序列&#xff0c;则称Z为X和Y的公共子序列。 如果给定X、Y&#xff0c;求出最长Z及其长度。 示例&#xff1a; 输入 ABCPDSFJGODIHJOFDIUSHGD OSDIHGKODGHBLKSJBHKAGHI 输出 SDIHODSHG 9 分析&#xff1a…

课堂练习4.2:页式内存管理

4-3 课堂练习4.2:页式内存管理 创建一个进程(创建进程是在磁盘中),进程以字节为单位编号,然后再进程分为许多页(每页 4KB ),内存中有对应的页框(设定同页)。通过页表(记录页和页框的对应关系),将最需要的页调入内存,其他页留在磁盘中。根据 CPU 的需要动态的更新…

鸿蒙开发之封装优化

面向对象开发离不开封装&#xff0c;将重复的可以复用的代码封装起来&#xff0c;提高开发效率。 基于之前的List&#xff0c;对代码进行封装。 1、抽取component 将List的头部抽离出来作为一个新的component。可以创建一个新的ArkTS文件&#xff0c;写我们的头部代码 为了…

Springboot获取jar版本方法

Springboot获取jar版本方法 方案一: 通过jar的pom.properties文件获取 获取demo Properties properties new Properties(); try {properties.load(RakicAppInfo.class.getResourceAsStream("/META-INF/maven/com.rakic.framework/rakic-app-springboot-start/pom.pro…

Kubernetes里的DNS;API资源对象ingress;Kubernetes调度;节点选择器NodeSelector;节点亲和性NodeAffinity

Kubernetes里的DNS K8s集群内有一个DNS服务&#xff1a; kubectl get svc -n kube-system |grep dns测试&#xff1a; 在tang3上安装bind-utils,目的是安装dig命令 yum install -y bind-utils apt install dnsutils #ubuntu上 解析外网域名 dig 10.15.0.10 www.baidu.com…

JavaScript-节点操作

节点操作 DOM节点 DOM节点&#xff1a;DOM树里每一个内容都称之为节点 节点类型&#xff1a; 元素节点 所有的标签 比如body、divhtml时跟节点 属性节点 所有的属性&#xff0c;比如href 文本节点 所有的文本 其他 查找节点 节点的关系&#xff1a;针对的找亲戚返回的都是…

63. 不同路径 II

一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish”&#xff09;。 现在考虑网格中有障碍物。那么从左上角到右下角…

查找算法——线性查找、二分查找

列表查找&#xff1a;从列表中查找指定元素。 列表查找的两种方法备注 顺序查找 (也叫线性查找) 两种方式&#xff1a; &#xff08;1&#xff09;自己写段代码。 &#xff08;2&#xff09;用列表内置函数index( ) 列表有序无序都可以。二分查找自己写段代码 列表必须有序&a…

动态规划_最小花费爬楼

//给你一个整数数组 cost &#xff0c;其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用&#xff0c;即可选择向上爬一个或者两个台阶。 // // 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 // // 请你计算并返回达到楼梯顶部的最低花费。 …

Vue 静态渲染 v-pre

v-pre 指令&#xff1a;用于阻止 Vue 解析这个标签&#xff0c;直接渲染到页面中。 语法格式&#xff1a; <div v-pre> {{ 数据 }} </div> 基础使用&#xff1a; <template><h3>静态渲染 v-pre</h3><p v-pre>静态渲染&#xff1a;{{ n…

JavaEE 08 线程池简介

前言 前面我们谈完了定时器,单例模式,阻塞队列等的操作并且做了模拟实现,今天我们再来说一说线程池的操作以及一些锁策略. 注:本章几乎均为理论篇,实践较少. 下面就让我们开始吧. 线程池 我们知道因为进程的频繁创建和销毁,带来的开销过大,我们无法接受,所以我们引入了更轻量级…