最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue?Echarts實(shí)現(xiàn)實(shí)時(shí)大屏動(dòng)態(tài)數(shù)據(jù)顯示

 更新時(shí)間:2022年10月14日 08:35:16   作者:深情的狼  
同大多數(shù)的前端框架一樣,先讀官網(wǎng)的使用方法。學(xué)會(huì)基本使用后,在實(shí)例中找到自己想要demo。拿過(guò)來(lái)改一改,一個(gè)echarts圖表就形成,畢竟人家做就是為了方便使用,這篇文章主要介紹了Vue?Echarts實(shí)現(xiàn)實(shí)時(shí)大屏動(dòng)態(tài)數(shù)據(jù)顯示

前言

因?yàn)槭菄?guó)企線(xiàn)上應(yīng)用的活動(dòng)大屏,我就不附圖了。代碼僅供參考。

一、vue配置

1. 我是用vue-cli 搭建的,大屏項(xiàng)目復(fù)雜度不高,vue-router、vuex 、axios、sass 等都可以不用,vue、echarts就夠用。

2. vue.config.js 配置就正常配,出口入口等基本配置我就不展示了,這兩個(gè)配置項(xiàng)大屏還有點(diǎn)用。主要是我把每個(gè)圖表都拆成了單獨(dú)的組件,沒(méi)封裝公共的圖表組件,一些重復(fù)的樣式還有一些scss的函數(shù)可以寫(xiě)在公共的文件里,我是開(kāi)發(fā)環(huán)境用了sass。

module.exports = {
  configureWebpack: {
  name: "", // 打包后的瀏覽器的title, 大屏全屏展示了用處不大 
  resolve: {
    alias: {
     '@': resolve('src')
    }
   }
  },
  css: {
    // 全局公共css
    loaderOptions: {
      sass: {
        prependData: `@import "@/styles/index.scss";` // 這個(gè)是在每個(gè)css文件加個(gè)前置代碼
      }
    }
  }
}

二、適配方案

既然是大屏,肯定是要適配滴。適配方案網(wǎng)上很多很多,我不過(guò)多介紹,我只說(shuō)下我真正使用的方案。以下代碼放到一個(gè)js文件里,然后在main.js里引入,自執(zhí)行函數(shù)直接解決這個(gè)適配問(wèn)題,js的好處就是不限于你所使用的js框架。適配過(guò)后單位可采用px和百分比。flex布局簡(jiǎn)單將大屏分割一個(gè)圖表為一個(gè)組件,拼出來(lái)就好了。

(function (win) {
    var bodyStyle = document.createElement('style')
    bodyStyle.innerHTML = `body{width:1920px; height:1080px!important;overflow: hidden}`
    document.documentElement.firstElementChild.appendChild(bodyStyle)
    function refreshScale() {
        let docWidth = document.documentElement.clientWidth;
        let docHeight = document.documentElement.clientHeight;
        //設(shè)計(jì)圖的寬高
        var designWidth = 1920,
            designHeight = 1080,
            widthRatio = docWidth / designWidth,
            heightRatio = docHeight / designHeight;
        //設(shè)置縮放屬性
        document.body.style = "transform:scale(" + widthRatio + "," + heightRatio + ");transform-origin:left top;"
        // 應(yīng)對(duì)瀏覽器全屏切換前后窗口因短暫滾動(dòng)條問(wèn)題出現(xiàn)未占滿(mǎn)情況
        setTimeout(function () {
            var lateWidth = document.documentElement.clientWidth,
                lateHeight = document.documentElement.clientHeight;
            if (lateWidth === docWidth) return;
            widthRatio = lateWidth / designWidth
            heightRatio = lateHeight / designHeight
            document.body.style = "transform:scale(" + widthRatio + "," + heightRatio + ");transform-origin:left top;"
        }, 0)
    }
    refreshScale()
    win.addEventListener("pageshow", function (e) {
        if (e.persisted) { // 瀏覽器后退的時(shí)候重新計(jì)算
            refreshScale()
        }
    }, false);
    //監(jiān)聽(tīng)頁(yè)面變化
    win.addEventListener("resize", refreshScale, false);
})(window)

三、Echarts

1. echarts 官網(wǎng)對(duì)于api 和 option 的解釋很清晰全面,看官網(wǎng)解決大部分問(wèn)題。

2. 圖表option 可能存在大量重復(fù)配置項(xiàng),比如整個(gè)大屏風(fēng)格顏色,可以把公共的抽離成一個(gè)js對(duì)象,然后利用對(duì)象合并,既保證了代碼簡(jiǎn)潔,后面修改和維護(hù)也方便。

3.圖表適配問(wèn)題,圖表適配保證視口變化,圖表不會(huì)變得扭曲。在根組件App.vue監(jiān)聽(tīng)一下。update 通過(guò) prop分發(fā)給每個(gè)圖表組件。時(shí)間戳保證更新?tīng)顟B(tài)。

mounted() {
   window.addEventListener("resize", () => {
     this.update = new Date().getTime();
   });
}

圖表所在組件監(jiān)聽(tīng)一下變化,調(diào)用echarts內(nèi)置函數(shù)resize。

 watch: {
    upDate() {
      this.myEchart && this.myEchart.resize();
    }
 }

4. echarts 地圖問(wèn)題,地圖的話(huà)echarts5.0.0以后的版本往后應(yīng)該是不內(nèi)置了,我下載了4.9.0版本的。最開(kāi)始我下載的也是最新的,發(fā)現(xiàn)這個(gè)問(wèn)題,我就降版本了。

import * as echarts from "echarts";
import "echarts/map/js/china.js";

這樣就可以配置地圖了,比較新的版本,不降版本也行,你網(wǎng)上找一份這個(gè)地圖js文件,放到項(xiàng)目里也可以。

四、實(shí)時(shí)更新

實(shí)時(shí)更新怎么做,就是輪詢(xún)。將請(qǐng)求過(guò)來(lái)的數(shù)據(jù)在A(yíng)pp.vue 組件利用prop分發(fā)給每個(gè)圖表組件。watch監(jiān)聽(tīng)一下(deep),重新 init 圖表。記得銷(xiāo)毀定時(shí)器。

wheel() {
   this.timer = setInterval(() => {
      console.log("輪詢(xún)調(diào)用接口中...");
      this.queryData();
   }, 60000); // 6秒一次
},
queryData() {
    // 請(qǐng)求接口 沒(méi)用axios就用fetch     
},

到此這篇關(guān)于Vue Echarts實(shí)現(xiàn)實(shí)時(shí)大屏動(dòng)態(tài)數(shù)據(jù)顯示的文章就介紹到這了,更多相關(guān)Vue Echarts內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • v-html渲染組件問(wèn)題

    v-html渲染組件問(wèn)題

    最近在學(xué)習(xí)vue,今天正好發(fā)現(xiàn)個(gè)問(wèn)題,本文介紹了v-html渲染組件問(wèn)題,整理了問(wèn)題的解決方法,有需要的小伙伴可以參考下
    2021-05-05
  • 如何手寫(xiě)簡(jiǎn)易的 Vue Router

    如何手寫(xiě)簡(jiǎn)易的 Vue Router

    這篇文章主要介紹了如何手寫(xiě)簡(jiǎn)易的 Vue Router,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下
    2020-10-10
  • vue+element table表格實(shí)現(xiàn)動(dòng)態(tài)列篩選的示例代碼

    vue+element table表格實(shí)現(xiàn)動(dòng)態(tài)列篩選的示例代碼

    這篇文章主要介紹了vue+element table表格實(shí)現(xiàn)動(dòng)態(tài)列篩選的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • vue3無(wú)法使用jsx的問(wèn)題及解決

    vue3無(wú)法使用jsx的問(wèn)題及解決

    這篇文章主要介紹了vue3無(wú)法使用jsx的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 詳解如何使用Vuex實(shí)現(xiàn)Vue后臺(tái)管理中的角色鑒權(quán)

    詳解如何使用Vuex實(shí)現(xiàn)Vue后臺(tái)管理中的角色鑒權(quán)

    最近參與了公司一個(gè)新的B端項(xiàng)目的研發(fā),從無(wú)到有搭建項(xiàng)目的過(guò)程中,遇到了關(guān)于項(xiàng)目鑒權(quán)的問(wèn)題,這篇文章主要給大家介紹了關(guān)于如何使用Vuex實(shí)現(xiàn)Vue后臺(tái)管理中的角色鑒權(quán)的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • 詳解Vue-cli來(lái)構(gòu)建Vue項(xiàng)目的步驟

    詳解Vue-cli來(lái)構(gòu)建Vue項(xiàng)目的步驟

    這篇文章主要為大家介紹了Vue-cli來(lái)構(gòu)建Vue項(xiàng)目的步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • VeeValidate在vue項(xiàng)目里表單校驗(yàn)應(yīng)用案例

    VeeValidate在vue項(xiàng)目里表單校驗(yàn)應(yīng)用案例

    這篇文章主要介紹了VeeValidate在vue項(xiàng)目里表單校驗(yàn)應(yīng)用案例,VeeValidate是Vue.js的驗(yàn)證庫(kù),它有很多驗(yàn)證規(guī)則,并支持自定義規(guī)則,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-05-05
  • vue前端路由以及vue-router兩種模式實(shí)例詳解

    vue前端路由以及vue-router兩種模式實(shí)例詳解

    路由這個(gè)概念最先是后端出現(xiàn)的,下面這篇文章主要給大家介紹了關(guān)于vue前端路由以及vue-router兩種模式的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • vue-cli4.0多環(huán)境配置變量與模式詳解

    vue-cli4.0多環(huán)境配置變量與模式詳解

    這篇文章主要介紹了vue-cli4.0多環(huán)境配置變量與模式詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • vue里面v-bind和Props 利用props綁定動(dòng)態(tài)數(shù)據(jù)的方法

    vue里面v-bind和Props 利用props綁定動(dòng)態(tài)數(shù)據(jù)的方法

    今天小編就為大家分享一篇vue里面v-bind和Props 利用props綁定動(dòng)態(tài)數(shù)據(jù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08

最新評(píng)論

红安县| 广宗县| 内乡县| 嘉祥县| 蓬安县| 凤凰县| 永城市| 开化县| 常山县| 基隆市| 连州市| 南丰县| 顺义区| 微博| 鄯善县| 建始县| 平湖市| 玉田县| 万源市| 吉水县| 文安县| 竹溪县| 通化市| 巫溪县| 绥棱县| 江川县| 临海市| 来宾市| 疏勒县| 濉溪县| 巫溪县| 克拉玛依市| 贵州省| 南和县| 孙吴县| 会同县| 稻城县| 荃湾区| 城步| 永宁县| 扬中市|