vue中使用echarts

<meta charset="utf-8">

由于在項目中需要對數(shù)據(jù)進行可視化處理,也就是用圖表展示,眾所周知echarts是非常強大的插件。一開始想在網(wǎng)上找一個基于vue封裝好的(懶省事),eg:vue-echarts ,但是拉取下來發(fā)現(xiàn),跟項目中使用的類型有點偏差,而且他們的數(shù)據(jù)大多都是定制好的,我很難在此基礎(chǔ)上進行更改(惹不起),于是選擇了放棄,最終還是選擇echarts。以下是我使用的一些心得體會~

我的示例是在vue-cli搭建

安裝echarts依賴

npm install echarts -S
或者使用淘寶的鏡像
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install echarts -S

創(chuàng)建圖表

首先需要全局引入
在main.js中

// 引入echarts
import echarts from 'echarts'
Vue.prototype.$echarts = echarts

在Echarts.vue中
<div id="myChart" :style="{width: '300px', height: '300px'}"></div>

export default {
  name: 'hello',
  data () {
    return {
      msg: 'Welcome to Your Vue.js App'
    }
  },
  mounted(){
    this.drawLine();
  },
  methods: {
    drawLine(){
        // 基于準備好的dom,初始化echarts實例
        let myChart = this.$echarts.init(document.getElementById('myChart'))
        // 繪制圖表
        myChart.setOption({
            title: { text: '在Vue中使用echarts' },
            tooltip: {},
            xAxis: {
                data: ["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"]
            },
            yAxis: {},
            series: [{
                name: '銷量',
                type: 'bar',
                data: [5, 20, 36, 10, 10, 20]
            }]
        });
    }
  }
}

注意:我們要在mounted生命周期函數(shù)中實例化echarts對象。因為我們要確保dom元素已經(jīng)掛載到頁面中

image

這樣一個簡單的圖表就完成了,是不是覺得很簡單?假如在一個大型的項目中,而且數(shù)據(jù)是非常復雜的?那么該如何操作?

按需引入

由于全局引入會將所有的echarts圖表打包,導致體積過大
在Echarts.vue文件中

// 引入基本模板
let echarts = require('echarts/lib/echarts')
// 引入柱狀圖組件
require('echarts/lib/chart/bar')
// 引入提示框和title組件
require('echarts/lib/component/tooltip')
require('echarts/lib/component/title')

使用 require 而不是 import

基于前面的疑問,加上實際運用到項目中遇到的一些問題,我思考使用組件的形式。

以組件的形式用echarts

從上邊可以看出,你每次在使用echarts的時候,都必須要重復的引入,這樣很不方便
vue作為一個組件化開發(fā)的框架,我們可以使用組件的方式進行集成。每次我們引入組件,進行使用,這樣就方便的多。
下面是一個我自己對echarts進行的一個簡單的vue組件的集成。
在echarts中
子組件:

image

props部分是我接收到的參數(shù),父組件獲取數(shù)據(jù)分發(fā),data是父組件分發(fā)給echarts的數(shù)據(jù)源。

父組件:

image

如果在大型的項目,而且圖表又非常的多,那么vuex少不了。如果把數(shù)據(jù)集中存儲到了vuex中,echarts組件再從vuex中獲取數(shù)據(jù),我們也能隨時保存獲取的結(jié)果,對這些數(shù)據(jù)可以添加收藏也可以加入緩存中,下次再請求可以先從緩存調(diào)用。接下來會繼續(xù)分享vuex的使用~~~

作者:margery
鏈接:http://www.itdecent.cn/p/cf0a54374419
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 公司的項目中需要對數(shù)據(jù)做可視化處理,高級點的D3.js目前還沒接觸到,因此選用了大眾化的Echarts, 在...
    Mr_Treasure閱讀 165,989評論 8 44
  • 由于在項目中需要對數(shù)據(jù)進行可視化處理,也就是用圖表展示,眾所周知echarts是非常強大的插件。一開始想在網(wǎng)上找一...
    margery閱讀 596,197評論 31 191
  • 第一步:下載echarts npm install echarts --save 第二步:在項目中main.js引...
    JiAyInNnNn閱讀 240評論 0 0
  • 1- 安裝 echarts 依賴 npm install echarts -S 2- 創(chuàng)建圖表全局引入 (1),在...
    致青春永恒閱讀 783評論 0 0
  • 1.對于一般的圖表制作 我在此強力推薦ECharts官網(wǎng):https://echarts.baidu.com/豐...
    一葉知秋_038b閱讀 266評論 0 0

友情鏈接更多精彩內(nèi)容