国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

在React 組件中使用Echarts的示例代碼

2019-11-19 14:58:06
字體:
來源:轉載
供稿:網友

在完成一個需求的時候碰到一個場景需要使用柱狀圖。涉及到可視化,第一反應當然是Echarts了。平時用js加載Echarts組件很方便,但是在React中就要費下神了。各種連蒙帶猜實現了。edmo里的

這里我們要在自己搭建的react項目中使用ECharts,我們可以在ECharts官網上看到有一種方式是在 webpack 中使用 ECharts,我們需要的就是這種方法。

我們在使用ECharts之前要先安裝ECharts,在以往的開發模式中,我們很多使用就是把官網中的ECharts的核心js文件導入到我們的html或者是jsp等文件里面,但是在react項目中,我們可以直接使用node.js的npm命令安裝:

npm install echarts --save

Echarts的例子就是Echarts文檔上介紹的最簡單的應用。

render:function() {      var info = 1;    return (        <div className="mt15 xui-financialAnalyse-page">           <div className="xui-general">          <Chart data={info} data-info={info} />        </div>      </div>    )  }

這是調用Echarts組件的地方,給里面傳了2個屬性(data-開頭是H5定義的規范)

var Chart = React.createClass({  getInitialState: function() {    this.token = Store.addListener(this.onChangeData);    return {}  },  componentWillMount: function() {    var info = this.props.data;     //HTML5規定自定義屬性要以data-開頭,這樣的可以如下取    console.log(this.props['data-info'])     Action.getInfo(info);  },   componentDidUpdate: function() {     this.showChart(this.state.data)   },   onChangeData: function() {    var data = Store.getData();    this.setState({      data: data['info']['data'] //后臺返回的數據    });  },   showChart: function(dataSet){    var myChart = echarts.init(document.getElementById('main'));    var option = {        title: {        text: 'ECharts 入門示例'      },      color: ['#3398DB'],      tooltip : {        trigger: 'axis',        axisPointer : {              type : 'shadow'         }      },      grid: {        left: '3%',        right: '4%',        bottom: '3%',        containLabel: true      },      xAxis : [        {          type : 'category',          data : ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],          axisTick: {            alignWithLabel: true          }        }      ],      yAxis : [        {          type : 'value'        }      ],      series : [        {          name:'你好',          type:'bar',          barWidth: '60%',          data: dataSet        }      ]    };    myChart.setOption(option);   },   render: function() {    return (       <div id="main" style={{width: 500, height:500}}></div>    )  }});

上面是完整的demo Echarts組件的代碼,主要是利用了React根據不同狀態(3種狀態)提供的處理函數(一共有5種)。

1、componentWillMount:在插入真實DOM之前發起Action,向后端請求數據。

2、onChangeStore:在數據變更的時候更新數據,并在getInitialState中加入監聽Store中數據變化的監聽器。

3、componentDidUpdate:在數據被重新渲染之后,觸發showChart()方法繪制canvas。

4、showChart:配置Echarts,具體配置信息可以參考Echarts文檔

5、如果組件生命周期結束,那么要加上如下代碼:

  componentWillUnmount: function() {    this.token.remove();  },

否則會報錯: Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the undefined component.

最后附上效果圖:

     

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 会泽县| 凤城市| 普陀区| 桂阳县| 珲春市| 星座| 吐鲁番市| 博客| 绍兴县| 安宁市| 永靖县| 平罗县| 盘锦市| 安义县| 襄城县| 赫章县| 黄梅县| 修文县| 恩施市| 甘德县| 英山县| 从化市| 小金县| 同仁县| 安庆市| 阳春市| 玛曲县| 岢岚县| 东阿县| 襄城县| 年辖:市辖区| 涞水县| 乐都县| 新野县| 林西县| 广河县| 黑水县| 老河口市| 台州市| 全州县| 水城县|