微信小程序中使用ECharts 异步加载数据的方法
官网例子都是同步的,怎么引入及同步demo请移步官网
import*asechartsfrom'../../ec-canvas/echarts'; Page({ data:{ ecBar:{ lazyLoad:true//延迟加载 }, ecScatter:{ lazyLoad:true } }, onLoad(){ this.barComponent=this.selectComponent('#mychart-dom-multi-bar'); this.scaComponnet=this.selectComponent('#mychart-dom-multi-scatter'); this.init_bar(); this.init_sca(); }, init_bar:function(){ this.barComponent.init((canvas,width,height)=>{ //初始化图表 constbarChart=echarts.init(canvas,null,{ width:width, height:height }); barChart.setOption(this.getBarOption()); //注意这里一定要返回chart实例,否则会影响事件处理等 returnbarChart; }); }, init_sca:function(){ this.scaComponnet.init((canvas,width,height)=>{ //初始化图表 constscaChart=echarts.init(canvas,null,{ width:width, height:height }); scaChart.setOption(this.getScaOption()); //注意这里一定要返回chart实例,否则会影响事件处理等 returnscaChart; }); }, getBarOption:function(){ //return请求数据 return{ color:['#37a2da','#32c5e9','#67e0e3'], tooltip:{ trigger:'axis', axisPointer:{//坐标轴指示器,坐标轴触发有效 type:'shadow'//默认为直线,可选为:'line'|'shadow' } }, legend:{ data:['热度','正面','负面'] }, grid:{ left:20, right:20, bottom:15, top:40, containLabel:true }, xAxis:[ { type:'value', axisLine:{ lineStyle:{ color:'#999' } }, axisLabel:{ color:'#666' } } ], yAxis:[ { type:'category', axisTick:{show:false}, data:['汽车之家','今日头条','百度贴吧','一点资讯','微信','微博','知乎'], axisLine:{ lineStyle:{ color:'#999' } }, axisLabel:{ color:'#666' } } ], series:[ { name:'热度', type:'bar', label:{ normal:{ show:true, position:'inside' } }, data:[300,270,340,344,300,320,310] }, { name:'正面', type:'bar', stack:'总量', label:{ normal:{ show:true } }, data:[120,102,141,174,190,250,220] }, { name:'负面', type:'bar', stack:'总量', label:{ normal:{ show:true, position:'left' } }, data:[-20,-32,-21,-34,-90,-130,-110] } ] }; }, getScaOption:function(){ //请求数据 vardata=[]; vardata2=[]; for(vari=0;i<10;i++){ data.push( [ Math.round(Math.random()*100), Math.round(Math.random()*100), Math.round(Math.random()*40) ] ); data2.push( [ Math.round(Math.random()*100), Math.round(Math.random()*100), Math.round(Math.random()*100) ] ); } varaxisCommon={ axisLabel:{ textStyle:{ color:'#C8C8C8' } }, axisTick:{ lineStyle:{ color:'#fff' } }, axisLine:{ lineStyle:{ color:'#C8C8C8' } }, splitLine:{ lineStyle:{ color:'#C8C8C8', type:'solid' } } }; return{ color:["#FF7070","#60B6E3"], backgroundColor:'#eee', xAxis:axisCommon, yAxis:axisCommon, legend:{ data:['aaaa','bbbb'] }, visualMap:{ show:false, max:100, inRange:{ symbolSize:[20,70] } }, series:[{ type:'scatter', name:'aaaa', data:data }, { name:'bbbb', type:'scatter', data:data2 } ], animationDelay:function(idx){ returnidx*50; }, animationEasing:'elasticOut' }; }, });
注意:异步加载时,ec-canvas标签加载显示要先于this.scaComponnet.init,否则会报错。
总结
以上所述是小编给大家介绍的微信小程序中使用ECharts异步加载数据的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!