微信小程序中使用echarts的实现方法


Posted in Javascript onApril 24, 2019

刚开始学微信小程序,有说的不对的地方大家可以提出!

首先体验示例小程序

在微信中扫描下面的二维码即可体验 ECharts Demo: 

微信小程序中使用echarts的实现方法

下载

为了兼容小程序 Canvas,我们提供了一个小程序的组件,用这种方式可以方便地使用 ECharts。

首先,下载 GitHub 上的 ecomfe/echarts-for-weixin 项目。

其中,ec-canvas 是我们提供的组件,其他文件是如何使用该组件的示例。

ec-canvas 目录下有一个 echarts.js,默认我们会在每次 echarts-for-weixin 项目发版的时候替换成最新版的 ECharts。如有必要,可以自行从 ECharts 项目中下载最新发布版,或者从官网自定义构建以减小文件大小。

引入组件

微信小程序的项目创建可以参见微信公众平台官方文档。

在创建项目之后,可以将下载的 ecomfe/echarts-for-weixin 项目完全替换新建的项目,然后将修改代码;或者仅拷贝 ec-canvas 目录到新建的项目下,然后做相应的调整。

如果采用完全替换的方式,需要将 project.config.json 中的 appid 替换成在公众平台申请的项目 id。pages 目录下的每个文件夹是一个页面,可以根据情况删除不需要的页面,并且在 app.json 中删除对应页面。

创建图表

首先,在 pages/bar 目录下新建以下几个文件:index.js、 index.json、 index.wxml、 index.wxss。并且在 app.json 的 pages 中增加 ‘pages/bar/index'。

index.json 配置如下:

{
 "usingComponents": {
 "ec-canvas": "../../ec-canvas/ec-canvas"
 }
}

这一配置的作用是,允许ECharts在 pages/bar/index.wxml 中使用 组件。注意路径的相对位置要写对,如果目录结构和本例相同,就应该像上面这样配置。

index.wxml 中,ECharts创建了一个 组件,内容如下:

<view class="container">
 <ec-canvas id="mychart-dom-bar" canvas-id="mychart-bar" ec="{{ ec }}"></ec-canvas>
</view>

其中 ec 是一个ECharts在 index.js 中定义的对象,它使得图表能够在页面加载后被初始化并设置。index.js 的结构如下:

function initChart(canvas, width, height) {
 const chart = echarts.init(canvas, null, {
 width: width,
 height: height
 });
 canvas.setChart(chart);

 var option = {
 ...
 };
 chart.setOption(option);
 return chart;
}

Page({
 data: {
 ec: {
  onInit: initChart
 }
 }
});

这对于所有 ECharts 图表都是通用的,用户只需要修改上面 option 的内容,即可改变图表。option 的使用方法参见ECharts 配置项文档。对于不熟悉 ECharts 的用户,可以参见 5 分钟上手 ECharts 教程。

下面是小程序的折线图demo:

1、首先是在pages文件夹下面新建line文件夹,里面对应的line.js、line.json、line.wxml、line.wxss

2、line.xml文件下面的代码:

微信小程序中使用echarts的实现方法

3.line.wxss代码如下:

微信小程序中使用echarts的实现方法

4、line.json代码:(注意该路径是我项目的路径,大家改成自己项目路径即可)

微信小程序中使用echarts的实现方法

5、line.js代码:

微信小程序中使用echarts的实现方法

最终完成效果:

微信小程序中使用echarts的实现方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
node.js chat程序如何实现Ajax long-polling长链接刷新模式
Mar 13 Javascript
javascript截取字符串(通过substring实现并支持中英文混合)
Jun 24 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
Jul 17 Javascript
JavaScript中“过于”犀利地for/in循环使用示例
Oct 22 Javascript
jquery $.trim()方法使用介绍
May 21 Javascript
AngularJs 60分钟入门基础教程
Apr 03 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
Dec 31 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
Jan 18 Javascript
JS设计模式之状态模式概念与用法分析
Feb 05 Javascript
vue使用jsonp抓取qq音乐数据的方法
Jun 21 Javascript
vue动态改变背景图片demo分享
Sep 13 Javascript
javascript实现贪吃蛇游戏(娱乐版)
Aug 17 Javascript
基于mpvue小程序使用echarts画折线图的方法示例
Apr 24 #Javascript
详解微信小程序开发用户授权登陆
Apr 24 #Javascript
微信小程序实现的一键拨号功能示例
Apr 24 #Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
Apr 24 #Javascript
微信小程序实现的图片保存功能示例
Apr 24 #Javascript
vue中的inject学习教程
Apr 24 #Javascript
浅谈Webpack多页应用HMR卡住问题
Apr 24 #Javascript
You might like
全国FM电台频率大全 - 11 浙江省
2020/03/11 无线电
解析htaccess伪静态的规则
2013/06/18 PHP
php环境套包 dedeampz 伪静态设置示例
2014/03/26 PHP
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
2015/06/29 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
2016/11/10 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
2017/02/08 PHP
PHP调试及性能分析工具Xdebug详解
2017/02/09 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
javascript获得CheckBoxList选中的数量
2009/10/27 Javascript
js DOM模型操作
2009/12/28 Javascript
nodejs实现HTTPS发起POST请求
2015/04/23 NodeJs
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
利用vue实现模态框组件
2016/12/19 Javascript
js实现定时进度条完成后切换图片
2017/01/04 Javascript
获取IE浏览器Cookie信息的方法
2017/01/23 Javascript
基于JavaScript实现图片连播和联级菜单实例代码
2017/07/28 Javascript
微信小程序之GET请求的实例详解
2017/09/29 Javascript
angular2 ng2 @input和@output理解及示例
2017/10/10 Javascript
vue点击页面空白处实现保存功能
2019/11/06 Javascript
原生js实现俄罗斯方块
2020/10/20 Javascript
原生js拖拽功能制作滑动条实例代码
2021/02/05 Javascript
Python实现SVN的目录周期性备份实例
2015/07/17 Python
python opencv实现gif图片分解的示例代码
2019/12/13 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
美国著名的女性内衣零售商:Frederick’s of Hollywood
2018/02/24 全球购物
母亲80寿诞答谢词
2014/01/16 职场文书
四年级语文教学反思
2014/02/05 职场文书
医院院务公开实施方案
2014/05/03 职场文书
关于安全演讲稿
2014/05/09 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书
Django migrate报错的解决方案
2021/05/20 Python
SpringBoot生成License的实现示例
2021/06/16 Java/Android
Python中的pprint模块
2021/11/27 Python
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android