在vue中通過axios異步使用echarts

現(xiàn)實的工作中, 數(shù)據(jù)不可能是像之前的demo演示的那樣把數(shù)據(jù)寫死的. 所有的數(shù)據(jù)都應該通過發(fā)送請求進行獲取, 所以, 這篇文章, 我將在Vue項目中使用Echarts: 在Vue中引入Echarts中的數(shù)據(jù)提取出來, 放入到static/data.json文件中,請求該文件獲取數(shù)據(jù)。

一巧婶、 實現(xiàn)異步加載數(shù)據(jù)

(一)引入vue-resource

  • 通過npm下載axios

     //命令行中輸入
     npm install axios --save
    
  • 在main.js中引入axios并注冊

     // main.js
     import http from './http'
     Vue.prototype.$http = http    //掛載到原型上
    

(二)設置data.json

將該柱狀圖的沒有數(shù)據(jù)的option抽取到data.json中, 代碼如下:

 {
    "title": { "text": "簡單餅狀圖" },
    "tooltip": {},
    "xAxis": {
        "data": ["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"],
        "name": "產(chǎn)品"
    },
    "yAxis": {},
    "series": [{
        "name": "銷量",
        "type": "bar",
        "data": [5, 20, 36, 10, 10, 20],
        "itemStyle": {   
            "normal": {
              "color": "hotpink"
            }
        }
    }]
}

(三)在async-bar-chart.vue中請求數(shù)據(jù)

  • 從aysnc-barChart-option.js中引入option
  • 在methods中添加drawBarChart()方法
  • 在mounted()鉤子函數(shù)中調用drawBarChart()

代碼如下:

 <template>
  <div id="myChart" :style="{width: '800px', height: '400px'}"></div>
</template>

<script>
  export default {
    name: 'echarts',
    data() {
      return {
        msg: 'Welcome to Your Vue.js App',
        goods: {}
      }
    },
    mounted() {
      this.drawLine();
    },
    created() {
      this.$http.get('./static/dat.json').then(res => {
        const data = res.data;
        this.goods = data
        console.log(this.goods);
        console.log(Array.from(this.goods.xAxis.data));
      })
    },
    methods: {
      drawLine() {
        // 基于準備好的dom氛赐,初始化echarts實例
        let myChart = this.$echarts.init(document.getElementById('myChart'))
        // 繪制圖表
        myChart.setOption({
          title: {},    //{text: '異步數(shù)據(jù)加載示例'},
          tooltip: {},
          xAxis: {
            data: []  //["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"]
          },
          yAxis: {},
          series: [{
            name: '銷量',
            type: 'bar',
            data: []  //[5, 20, 36, 10, 10, 20]
          }]
        });
        this.$http.get("./static/dat.json") .then((res) => {
            const data = res.data;
            const list = data.series.map(good=>{
                    let list =  good.data;
                    return [...list]
                })
                console.log(list);
                console.log(Array.from(...list));
            myChart.setOption({
              title: data.title,
              xAxis: [{
                data: data.xAxis.data
              }],
              series: [{
                name: '銷量',
                type: 'bar',
                data: Array.from(...list) //[5, 20, 36, 10, 10, 20]
              }]
            });
          })
      }
    }
  }
</script>
Aaron Swartz

二. 添加加載動畫

如果數(shù)據(jù)加載時間較長贱呐,一個空的坐標軸放在畫布上也會讓用戶覺得是不是產(chǎn)生 bug 了饲宛,因此需要一個 loading 的動畫來提示用戶數(shù)據(jù)正在加載。

ECharts 默認有提供了一個簡單的加載動畫择份。只需要調用 showLoading 方法顯示蘸嘶。數(shù)據(jù)加載完成后再調用 hideLoading 方法隱藏加載動畫。

drawLine()方法中添加showLoading()hideLoading(), 代碼如下:

    methods: {
      drawLine() {
        // 基于準備好的dom计雌,初始化echarts實例
        let myChart = this.$echarts.init(document.getElementById('myChart'))
        // 繪制圖表
        myChart.setOption({
          title: {}, //{text: '異步數(shù)據(jù)加載示例'},
          tooltip: {},
          xAxis: {
            data: [] //["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"]
          },
          yAxis: {},
          series: [{
            name: '銷量',
            type: 'bar',
            data: [] //[5, 20, 36, 10, 10, 20]
          }]
        });
        //顯示加載動畫
        myChart.showLoading();

        this.$http.get("./static/dat.json").then((res) => {
          setTimeout(() => { //未來讓加載動畫效果明顯,這里加入了setTimeout,實現(xiàn)3s延時
            const data = res.data;
            const list = data.series.map(good => {
              let list = good.data;
              return [...list]
            })
            console.log(list);
            console.log(Array.from(...list));
            myChart.hideLoading(); //隱藏加載動畫
            myChart.setOption({
              title: data.title,
              xAxis: [{
                data: data.xAxis.data
              }],
              series: [{
                name: '銷量',
                type: 'bar',
                data: Array.from(...list) //[5, 20, 36, 10, 10, 20]
              }]
            });
          }, 3000)
        })
      }
    }
Aaron Swartz
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末悄晃,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子凿滤,更是在濱河造成了極大的恐慌妈橄,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翁脆,死亡現(xiàn)場離奇詭異眷蚓,居然都是意外死亡,警方通過查閱死者的電腦和手機反番,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門沙热,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叉钥,“玉大人,你說我怎么就攤上這事篙贸⊥抖樱” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵爵川,是天一觀的道長敷鸦。 經(jīng)常有香客問我,道長寝贡,這世上最難降的妖魔是什么扒披? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮圃泡,結果婚禮上碟案,老公的妹妹穿的比我還像新娘。我一直安慰自己洞焙,他們只是感情好蟆淀,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著澡匪,像睡著了一般熔任。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上唁情,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天疑苔,我揣著相機與錄音,去河邊找鬼甸鸟。 笑死惦费,一個胖子當著我的面吹牛,可吹牛的內容都是我干的抢韭。 我是一名探鬼主播薪贫,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼刻恭!你這毒婦竟也來了瞧省?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤鳍贾,失蹤者是張志新(化名)和其女友劉穎鞍匾,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體骑科,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡橡淑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了咆爽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片梁棠。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡置森,死狀恐怖,靈堂內的尸體忽然破棺而出掰茶,到底是詐尸還是另有隱情暇藏,我是刑警寧澤蜜笤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布濒蒋,位于F島的核電站,受9級特大地震影響把兔,放射性物質發(fā)生泄漏沪伙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一县好、第九天 我趴在偏房一處隱蔽的房頂上張望围橡。 院中可真熱鬧,春花似錦缕贡、人聲如沸翁授。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽收擦。三九已至,卻和暖如春谍倦,著一層夾襖步出監(jiān)牢的瞬間塞赂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工昼蛀, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宴猾,地道東北人。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓叼旋,卻偏偏與公主長得像仇哆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子夫植,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345