微信小程序填坑記一之異步加載數(shù)據(jù)渲染echarts圖表

在微信小程序中,常常需要獲取后臺(tái)的數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行相對(duì)應(yīng)的處理之后,再結(jié)合該數(shù)據(jù)對(duì)圖表進(jìn)行渲染。
但是,在官方給出的ECharts的微信小程序版本的示例中,是把配置函數(shù)寫在了page之外,那么我們要如何獲取后臺(tái)傳來的數(shù)據(jù)對(duì)圖表進(jìn)行渲染呢?
防止有的人不了解如何在微信小程序中使用echarts,我們先從圖表組件的引入開始說起:
1.下載
首先我們需要下載echarts的組件,放置到微信小程序當(dāng)中,作為頁面的子組件來使用。
ecomfe/echarts-for-weixin
把該文件下載下來之后,把文件中ec-canvas的文件夾拷貝到小程序項(xiàng)目中的組件文件夾下。

2.引入組件
下載了echarts組件之后,把需要使用echarts的js頁面(index頁面下)當(dāng)中引入該組件:
(1)
import * as echarts from '../../../../../ec-canvas/echarts';

(2) 在index.html 引入echarts組件 :

<view class='content'>
          <ec-canvas id="my-canvas" canvas-id="mycharts-line" ec="{{ec}}"></ec-canvas>
</view>

注意!在ec-canvas的組件上一定要加一個(gè)view并且給view一個(gè)寬高,因?yàn)閑c-vanvas的寬高是百分比的,所以一定要給外層的view一個(gè)寬高,這樣才能正確的渲染出來。除此之外,需要給這個(gè)ec-canvas的組件一個(gè)id名。
這樣,就能在頁面中引用該組件了
3.編寫圖表配置

  getCwData(){
    return {
      color: ["#36de95", "#f25259", "#fbbb56", "#f7d756", "#383bc6","#57b8f5"],
      grid: {
        left: '3%',
        right: '5%'
      },
      backgroundColor: '#fff',
      series: [
        {
          type: 'pie',
          center: ['50%', '50%'],
          radius: '45%',
          data: [{name:'類型1', value: 10}, {name:'類型2', value: 100}],
         //  data: _this.data.存儲(chǔ)數(shù)據(jù)的變量名,
          label: {
            normal: {
              textStyle: {
                color: '#000',
                fontSize: 14
              },
              padding: [0, -25],
              formatter: function (params) {
                var personnelPercent = Math.round(params.percent);
                var result = params.name + personnelPercent + "% \n\n";
                return result;
              },
              rich: {}
            }
          },
          labelLine: {
            normal: {
              length: 20,
              length2: 40
            }
          },
        }
      ]
    };
  }

4.在編寫完圖表配置之后,在頁面page中的data中配置初始化,如何初始化?
在js頁面的data中給該組件一個(gè)懶加載

ec: {  
       lazyLoad: true,
},

5.在js文件中的onload函數(shù)中,獲取到該組件對(duì)象
this.emotionsEcharts = this.selectComponent('#my-canvas');

6.定義一個(gè)對(duì)圖表進(jìn)行初始化的函數(shù)

init_echarts(el, fn) {
    el.init((canvas, width, height) => {
      // 初始化圖表
      const Chart = echarts.init(canvas, null, {
        width: width,
        height: height
      });
      Chart.setOption(fn());
      // 注意這里一定要返回 chart 實(shí)例,否則會(huì)影響事件處理等
      return Chart;
    });
  },

7.在獲取到后臺(tái)數(shù)據(jù)之后,就可以對(duì)該圖表進(jìn)行渲染

(前面是接口數(shù)據(jù)的處理,把圖表需要的數(shù)據(jù)存到data下的變量里)
_this.init_echarts(_this.emotionsEcharts , _this.getCwData);

這樣,就是一個(gè)完整的在小程序中異步加載echarts圖表。

(如有任何不對(duì)的地方,請(qǐng)?zhí)岢鲋刚u(píng)?。。。?/p>

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

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

  • 微信小程序使用echarts教程 平時(shí)經(jīng)常在web系統(tǒng)中使用折線圖、柱狀圖、儀表盤等等等圖表展示數(shù)據(jù),在瀏覽器頁面...
    虛幻的銹色閱讀 95,496評(píng)論 37 20
  • Github地址:https://github.com/antvis/wx-f2AntV F2地址: AntV F...
    殺個(gè)程序猿祭天閱讀 48,866評(píng)論 7 17
  • 實(shí)現(xiàn)客戶端和服務(wù)器的一問一答,tcp比較可靠,demo中體現(xiàn)在先啟客戶端再啟服務(wù)器會(huì)報(bào)refuse錯(cuò)誤等。 服務(wù)器...
    09c72470861c閱讀 430評(píng)論 0 0
  • 每一天 我都在倒數(shù) 倒數(shù)和朋友在一起的日子 倒數(shù)有家人陪伴的日子 倒數(shù)有呼吸、會(huì)眨眼的日子 你聽見了時(shí)鐘的滴答聲了...
    密司王閱讀 217評(píng)論 1 1
  • 專科生升本不得不知道的知識(shí) 我是顧小拼,趁年輕,就該拼 在學(xué)歷門檻越來越高的今天,越來越多的人都在通過專升...
    彬文呀閱讀 220評(píng)論 0 0

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