本文主要介紹了在React 元件中使用Echarts的範例程式碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟著小編過來看看吧,希望能幫助大家。
在完成一個需求的時候碰到一個場景需要使用長條圖。涉及到可視化,第一個反應當然是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 ( <p className="mt15 xui-financialAnalyse-page"> <p className="xui-general"> <Chart data={info} data-info={info} /> </p> </p> ) }
這是呼叫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 ( <p id="main" style={{width: 500, height:500}}></p> ) } });
上面是完整的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.#ease check the code for the defined code for the defined code for the defined code for the defined codecom
##最後附上效果圖:相關推薦:
ECharts-基於HTML5 Canvas的JavaScript圖表庫圖文詳解
####ECharts3實作動態資料+時間座標軸的操作######以上是詳解在React 組件中使用Echarts的正確姿勢的詳細內容。更多資訊請關注PHP中文網其他相關文章!