Echarts官網教程中就有告訴經過各類方式獲取Echarts:http://echarts.baidu.com/tutorial.htmljavascript
最簡單的方式就是直接引用js文件就o了~html
固然,此次要用的是webpack來進行包管理,因此就要經過webpack來獲取Echarts:java
npm install echarts --save
經過webpack獲取的ECharts會放在項目的node_modules
目錄下,能夠直接經過require('echarts')
獲得。node
默認使用 require('echarts') 獲得的是已經加載了全部圖表和組件的 ECharts 包,所以體積會比較大,若是在項目中對體積要求比較苛刻,也能夠只按需引入須要的模塊。react
官方式這麼說的,因此咱們要到https://github.com/ecomfe/echarts/blob/master/index.js去查看能夠引入的模塊列表,並按需引入。webpack
好比此次我須要畫一個餅圖,我就須要引入:git
var echarts = require('echarts/lib/echarts') require('echarts/lib/chart/pie') require('echarts/lib/component/title')
咱們先定義一個Component
,ECharts的渲染是須要在這個div有寬高的前提下,因此在這個組件的render()
方法中要有一個div容器來展現ECharts,而且這個div要設置寬高。github
render() { return ( <div className="pie-react"> <div ref="pieChart" style={{width: "200px", height: "200px"}}> </div> </div> ) }
就像平時使用ECharts同樣,咱們先是獲取數據,而後init
ECharts,而後setOption
,就搞定了~web
initPieChart() { const { data } = this.props let myChart = echarts.init(this.refs.pieChart) let options = this.setOption(data) myChart.setOption(options) } //這是一個最簡單的餅圖~ setOption(data) { return { title:{ text:"編程語言", left:"center" }, series : [ { name: '比例', type: 'pie', data: data, label: { normal: { formatter: "{d}% \n{b}", } } } ] } }
constructor(props) { super(props) this.setOption = this.setOption.bind(this) this.initChart = this.initChart.bind(this) }
上面已經定義了initPieChart
方法,咱們該在何時用這個方法呢?npm
固然是要在DOM渲染完成了以後啊,而後經過refs去獲取這個DOM節點~
也就是componentDidMount
的時候:
componentDidMount() { this.iniChart(); }
componentDidUpdate() { this.iniChart(); }
import Pie from './pie'; const data = [ {value: 2, name: "JavaScript"}, {value: 1, name: "Java"}, {value: 1, name: "HTML/CSS"} ] export default class ComponentBody extends React.Component{ render(){ return( <div className="bodyindex"> <Pie data={data}/> </div> ) } }
完整代碼見https://github.com/axuebin/react-echarts-demo/blob/master/src/pie.js