TaroEcharts-各類圖表在Taro中的實踐

圖片描述隨着React的快速發展,咱們也愈來愈接受它的寫法和思想,現在小程序如火中天,普通的編譯模式早已不適應開發者的需求。人們在不斷的尋求一種React可以在小程序中編譯的語言框架,所以Taro便誕生了。宇宙中最強的執行官。它支持使用 React 的開發方式來編寫能夠同時在微信小程序、Web 、React Native 等多個平臺上運行的應用。通過不斷地迭代完善,已經讓 Taro 浴火重生。html

TaroEcharts簡介

本項目是在實際開發中總結出來的一套基於ec-canvas封裝的適用於Taro版本的圖表框架。開發者能夠經過簡單的配置及 React 的語法,快速開發圖表,知足各類可視化需求。node

Github地址:https://github.com/WsmDyj/ech...

微信小程序預覽:

TaroECharts Demo

實現過程

1 下載

爲了兼容小程序 Canvas,咱們首先去構建ec-canvas下載到本地。其中ec-canvas是echarts官網提供的組件,咱們能夠自行下載或者去官網自定義構建選擇本身須要的圖表或插件進行下載。git

2 引入組件

在項目中引入咱們須要的組件庫,這裏統一將其放在src/components/ec-canvas文件夾下。你們可將該文件夾導入到本身項目中去。其中echarts.js就是剛咱們自行下載的echarts圖表插件,可根據實際項目需求自定義下載所需圖表而後將其導入。github

3 建立圖表(以餅圖爲例)

3.1 新建圖表組件

components文件夾下建立pieCharts.js組件。引入咱們剛建立的組件canvas

import * as echarts from "./ec-canvas/echarts";

3.2 懶加載渲染圖表

配置咱們的ec-canvas小程序

config = {
    usingComponents: {
        "ec-canvas": "./ec-canvas/ec-canvas"
    }
};

在render函數中使用剛導入的ec-canvas微信小程序

<ec-canvas
    ref={this.refChart}
    canvas-id="mychart-area"
    ec={this.state.ec}
/>

構建refresh函數初始化圖表微信

refresh(data) {
    this.Chart.init((canvas, width, height) => {
      const chart = echarts.init(canvas, null, {
        width: width,
        height: height
      });
      setChartData(chart, data);
      return chart;
    });
  }

  refChart = node => (this.Chart = node);

配置懶加載圖表echarts

state = {
    ec: {
      lazyLoad: true
    }
 };

3.3 配置咱們所需圖表的option

這裏在setChartData進行配置,並傳入charts,data參數。框架

function setChartData(chart, data) {
  let option = {
    series : [
      {
        name: '訪問來源',
        type: 'pie',
        center: ['50%', '50%'],
        radius: [0, '60%'],
        data: data,
        itemStyle: {
          emphasis: {
            shadowBlur: 10,
            shadowOffsetX: 0,
            shadowColor: 'rgba(0, 0, 0, 0.5)'
          }
        }
      }
    ]
  };
  chart.setOption(option);
}

至此餅圖已經建立完成,具體的可參考餅圖

4 實例化圖表

在須要圖表的頁面中導入剛建立的圖表(餅圖)

import PieChart from "../../components/PieChart";

render函數中導入

<PieChart ref={this.refPieChart} />

實例化圖表並傳入data

componentDidMount() {
    const chartData = [
      {value:335, name:'直接訪問'},
      {value:310, name:'郵件營銷'},
      {value:234, name:'聯盟廣告'},
      {value:135, name:'視頻廣告'},
      {value:1548, name:'搜索引擎'}
    ];
    this.pieChart.refresh(chartData);
  }
  refPieChart = (node) => this.pieChart = node

至此餅圖已經建立完成,餅圖如此其餘的都是相似的。只要照着這個方式去設置option,咱們就能夠建立你想要的圖表了。
## 5 其餘圖表的建立
#### 可滑動圖表:
可滑動圖表
#### 一個頁面多個圖表:
一個頁面多個圖表
#### 多個圖表結合在一塊兒:
多個圖表結合在一塊兒

總結

從鮮爲人知到家喻戶曉,Taro如今也逐漸被開發者所接受。在將來的道路上應該還會更火,畢竟是宇宙中最強的執行官。然而一個好的框架也是須要大部分工具輔助的。就比如ADC旁邊總跟着個輔助。其中圖表在Taro中目前尚未一個統一的開發規範,目前這僅是咱們團隊中使用的一種方式。目前也正在抽離出單獨針對Taro-echarts包。志同道合歡迎提issue一塊兒加入咱們。

相關文章
相關標籤/搜索