微信小程序中使用ECharts 异步加载数据的方法


Posted in Javascript onJune 27, 2018

官网例子都是同步的,怎么引入及同步demo请移步官网

<view class="container">
 <ec-canvas id="mychart-dom-multi-bar" canvas-id="mychart-multi-bar" ec="{{ ecBar }}"></ec-canvas>
 <ec-canvas id="mychart-dom-multi-scatter" canvas-id="mychart-multi-scatter" ec="{{ ecScatter }}"></ec-canvas>
</view>
import * as echarts from '../../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) => {
   // 初始化图表
   const barChart = echarts.init(canvas, null, {
    width: width,
    height: height
   });
   barChart.setOption(this.getBarOption());
   // 注意这里一定要返回 chart 实例,否则会影响事件处理等
   return barChart;
  });
 },
 init_sca: function () {
  this.scaComponnet.init((canvas, width, height) => {
   // 初始化图表
   const scaChart = echarts.init(canvas, null, {
    width: width,
    height: height
   });
   scaChart.setOption(this.getScaOption());
   // 注意这里一定要返回 chart 实例,否则会影响事件处理等
   return scaChart;
  });
 },
 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(){
  //请求数据 
  var data = [];
  var data2 = [];
  for (var i = 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)
    ]
   );
  }
  var axisCommon = {
   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) {
    return idx * 50;
   },
   animationEasing: 'elasticOut'
  };
 },
});

注意:异步加载时,ec-canvas标签加载显示要先于this.scaComponnet.init,否则会报错。

总结

以上所述是小编给大家介绍的微信小程序中使用ECharts 异步加载数据的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Ruffy javascript 学习笔记
Nov 30 Javascript
有关DOM元素与事件的3个谜题
Nov 11 Javascript
用jquery写的菜单从左往右滑动出现
Apr 11 Javascript
js+css实现文字散开重组动画特效代码分享
Aug 21 Javascript
Javascript基于jQuery UI实现选中区域拖拽效果
Nov 25 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
Dec 27 Javascript
基于js中document.cookie全面解析
Sep 14 Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
Sep 27 Javascript
javascript实现小型区块链功能
Apr 03 Javascript
微信小程序实现的一键拨号功能示例
Apr 24 Javascript
解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题
Jul 27 Javascript
vue 避免变量赋值后双向绑定的操作
Nov 07 Javascript
浅谈Webpack下多环境配置的思路
Jun 27 #Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
Jun 27 #Javascript
详解关于vue-area-linkage走过的坑
Jun 27 #Javascript
详解nuxt sass全局变量(公共scss解决方案)
Jun 27 #Javascript
Vue引入sass并配置全局变量的方法
Jun 27 #Javascript
详解解决使用axios发送json后台接收不到的问题
Jun 27 #Javascript
vue中v-model的应用及使用详解
Jun 27 #Javascript
You might like
php中判断字符串是否全是中文或含有中文的实现代码
2011/09/16 PHP
PHP图片上传代码
2013/11/04 PHP
php专用数组排序类ArraySortUtil用法实例
2015/04/03 PHP
html数组字符串拼接的最快方法
2009/09/16 Javascript
ExtJS 入门
2010/10/29 Javascript
基于jQuery的前端数据通用验证库
2011/08/08 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
jQuery简易图片放大特效示例代码
2014/06/09 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
js数组去重的方法汇总
2015/07/29 Javascript
JavaScript优化以及前段开发小技巧
2017/02/02 Javascript
原生js封装运动框架的示例讲解
2017/10/01 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
2018/05/08 Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
2018/08/10 Javascript
JS字典Dictionary类定义与用法示例
2019/02/01 Javascript
Python 中字符串拼接的多种方法
2018/07/30 Python
对python判断ip是否可达的实例详解
2019/01/31 Python
python读取有密码的zip压缩文件实例
2019/02/08 Python
全面了解django的缓存机制及使用方法
2019/07/22 Python
Python3分析处理声音数据的例子
2019/08/27 Python
Python魔术方法专题
2020/06/19 Python
Python列表推导式实现代码实例
2020/09/09 Python
next在python中返回迭代器的实例方法
2020/12/15 Python
Alba Moda德国网上商店:意大利时尚女装销售
2016/11/14 全球购物
求职简历的自我评价
2014/01/31 职场文书
书法大赛策划方案
2014/06/04 职场文书
《微笑着面对生活》优秀演讲稿范文
2014/09/23 职场文书
个人作风建设总结
2014/10/23 职场文书
给医院的感谢信
2015/01/21 职场文书
世界红十字日活动总结
2015/02/10 职场文书
社区重阳节活动总结
2015/03/24 职场文书
自我检讨书怎么写
2015/05/07 职场文书
保密法制宣传月活动总结
2015/05/07 职场文书
运动员入场前导词
2015/07/20 职场文书
Python Numpy之linspace用法说明
2021/04/17 Python
Python音乐爬虫完美绕过反爬
2021/08/30 Python