1.按需加载echart组件,以饼图为例
import React, {Component} from 'react';
import ReactEcharts from 'echarts-for-react/lib/core';
import echarts from 'echarts/lib/echarts';
import 'echarts/lib/chart/line';
import 'echarts/lib/component/tooltip';
import 'echarts/lib/component/legend';
import 'echarts/lib/component/title';
import {
Card,
Button
} from 'antd'
export default class Line extends Component {
state = {
books:[1000,2000,1500,3000,2000,1200,800],
sales:[800,1500,1300,2800,1500,1000,500],
}
getOption1 = ()=>{
let options = {
title:{
text:'折线图-1',
textStyle:{
color:'pink'
}
},
legend: {
data: ['存货'],
icon:'circle'
},
tooltip: {
trigger: 'axis'
},
xAxis:{
data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],
},
yAxis:{},
series:[
{
name:'存货',
type:'line',
data:[1000,2000,1500,3000,2000,1200,800]
}
]
}
return options
}
getOption2 = (books,sales)=>{
let options = {
title:{
text:'折线图-2',
textStyle:{
color:'pink'
}
},
legend: {
data: ['订单量','销量'],
icon:'circle'
},
tooltip: {
trigger: 'axis'
},
xAxis:{
data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],
},
yAxis:{},
series:[
{
name:'订单量',
type:'line',
data:books
},
{
name:'销量',
type:'line',
data:sales
}
]
}
return options
}
update = ()=>{
this.setState(state=>({
books:state.books.map(item=>item+100),
sales:state.sales.map(item=>item-20),
}))
}
render() {
const title = <Button type={'primary'} onClick={this.update}>更新数据</Button>
const {books,sales} = this.state
return (
<div>
<Card>
<ReactEcharts
echarts={echarts}
option={this.getOption1()}
/>
</Card>
<Card title={title}>
<ReactEcharts
echarts={echarts} // 按需加载时候需要该参数
option={this.getOption2(books,sales)}
/>
</Card>
</div>
);
}
}
2.打包完成后可以打开js文件夹,去对比第一次和第二次使用了按需加载的文件夹大小,明显大小不同。