微信小程序中使用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 相关文章推荐
javascript web页面刷新的方法收集
Jul 02 Javascript
JS 如果改变span标签的是否隐藏属性
Oct 06 Javascript
JavaScript对象的property属性详解
Apr 01 Javascript
基于JavaScript实现网页倒计时自动跳转代码
Dec 28 Javascript
莱鸟介绍window.print()方法
Jan 06 Javascript
简单的JS时钟实例讲解
Jan 13 Javascript
js实现(全选)多选按钮的方法【附实例】
Mar 30 Javascript
jquery实现界面无刷新加载登陆注册
Jul 30 Javascript
详解JavaScript树结构
Jan 09 Javascript
详解用Webpack与Babel配置ES6开发环境
Mar 12 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
Jan 19 Javascript
vscode中的vue项目报错Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
Sep 11 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类声明和php类使用方法示例分享
2014/03/29 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
js下弹出窗口的变通
2007/04/18 Javascript
JavaScript prototype属性使用说明
2010/05/13 Javascript
25个好玩的JavaScript小游戏分享
2011/04/22 Javascript
js 将json字符串转换为json对象的方法解析
2013/11/13 Javascript
JavaScript中的prototype.bind()方法介绍
2014/04/04 Javascript
Bootstrap开关(switch)控件学习笔记分享
2016/05/30 Javascript
JS前向后瞻正则表达式定义与用法示例
2016/12/27 Javascript
Vue2.0 从零开始_环境搭建操作步骤
2017/06/14 Javascript
Vue中的数据监听和数据交互案例解析
2017/07/12 Javascript
Vue computed计算属性的使用方法
2017/07/14 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
2017/10/26 Javascript
Vue 使用中的小技巧
2018/04/26 Javascript
vue使用中的内存泄漏【推荐】
2018/07/10 Javascript
JavaScript键盘事件常见用法实例分析
2019/01/03 Javascript
vue中的过滤器实例代码详解
2019/06/06 Javascript
微信小程序实现聊天室
2020/08/21 Javascript
vue-router定义元信息meta操作
2020/12/07 Vue.js
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
pytorch + visdom CNN处理自建图片数据集的方法
2018/06/04 Python
python topN 取最大的N个数或最小的N个数方法
2018/06/04 Python
详解Django CAS 解决方案
2019/10/30 Python
巴西在线鞋店:Shoestock
2017/10/28 全球购物
应届生简历中的自我评价
2014/01/13 职场文书
高中军训广播稿
2014/01/14 职场文书
自动化专业职业生涯规划书范文
2014/01/16 职场文书
妈妈的账单教学反思
2014/02/06 职场文书
食堂标语大全
2014/06/11 职场文书
纪检干部现实表现材料
2014/08/21 职场文书
公务员年度个人总结
2015/02/12 职场文书
亲戚关系证明
2015/06/24 职场文书
《别在吃苦的年纪选择安逸》读后感3篇
2019/11/30 职场文书
护士年终工作总结不会写?各科护士模板总结
2020/01/02 职场文书
如何用python识别滑块验证码中的缺口
2021/04/01 Python