效果

引入ECharts

参见 https://github.com/ecomfe/echarts-for-weixin

目录

源码

pages/index/index.json

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

pages/index/index.wxml

<!--index.wxml-->
<view class="container"><button bindtap="chartInit" size="mini" type="primary">请求数据加载图表</button><button bindtap="chartReLoad" size="mini" type="primary">修改数据重载图表</button><button bindtap="chartClear" size="mini" type="primary">清除图表数据</button><button bindtap="chartShow" size="mini" type="primary">显示图表(使用保存起来的数据的副本)</button><button bindtap="chartDispose" size="mini" type="primary">释放图表</button><view class="chart" hidden="{{ !isShow }}"><ec-canvas id="my-chart" canvas-id="mychart-bar" ec="{{ ec }}"></ec-canvas></view><button bindtap="bindToggle" size="mini" type="primary">切换显示隐藏 {{isShow}}</button>
</view>

pages/index/index.wxss

/**index.wxss**/
button{display: block!important;margin: 10rpx;
}
.chart {display: block;width: 100%;height: 500rpx;background-color: #b9b8b8;
}ec-canvas{display: block;width: 100%;height: 500rpx;
}

pages/index/index.js

import * as echarts from '../../ec-canvas/echarts';Page({ecComponent: null,chart: null,onLoad() {const that = this;// 获取组件that.ecComponent = that.selectComponent('#my-chart');},data: {isShow: false,ec: {// 将 lazyLoad 设为 true 后,需要手动初始化图表lazyLoad: true},option: {grid: {left: 20,right: 40,bottom: 15,top: 40,containLabel: true},xAxis: {type: 'value',},yAxis: {type: 'category',data: [],},series: [{type: 'bar',data: [],}]},},// 点击按钮后初始化图表chartInit() {const that = this;if (!that.ecComponent) return wx.showToast({icon: "error",title: '请初始化组件',});that.ecComponent.init((canvas, width, height, dpr) => {// 获取组件的 canvas、width、height 后的回调函数// 在这里初始化图表const chart = echarts.init(canvas, null, {width: width,height: height,devicePixelRatio: dpr // new});// 模拟请求接口setTimeout(() => {that.data.option.yAxis.data = ['汽车之家', '今日头条', '百度贴吧', '一点资讯', '微信', '微博', '知乎'];that.data.option.series[0].data = [300, 270, 340, 344, 300, 320, 310];let option = JSON.parse(JSON.stringify(that.data.option));chart.setOption(option);}, 1000)// 将图表实例绑定到 this 上,可以在其他成员函数(如 dispose)中访问that.chart = chart;console.log(chart);// 注意这里一定要返回 chart 实例,否则会影响事件处理等return chart;});},// 重新加载chartReLoad() {const that = this;if (that.chart) {that.data.option.yAxis.data = ['汽车之家', '今日头条', '百度贴吧'];that.data.option.series[0].data = [300, 270, 340];let option = JSON.parse(JSON.stringify(that.data.option));that.chart.setOption(option);};},// 清除图表数据chartClear() {const that = this;if (that.chart) that.chart.clear();},// 显示chartShow(){const that = this;if (that.chart){let option = JSON.parse(JSON.stringify(that.data.option));that.chart.setOption(option);} },// 销毁chartDispose() {const that = this;if (that.chart) that.chart.dispose();},// 切换显示隐藏bindToggle(e){const that = this;that.setData({isShow: !that.data.isShow})if(that.data.isShow){that.chartInit();}}
});

微信小程序(一):小程序中使用EChart、控制EChart显示隐藏及数据懒加载相关推荐

  1. 微信小程序全栈开发实践 第二章 微信小程序组件介绍及使用 -- 2.10 image组件,如何实现图片懒加载?

    一.与image组件有关的技术问题 1.1 什么是WebP? webp是image组件的一个boolean属性,开启这个属性之后,代表url可以设置webp这种格式的图片.webP是一种同时提供了有损 ...

  2. 小程序看练代码02--模板、封装模板,include模板,wxs,全局样式,导入样式,微信基础样式库,hover-class等,过渡动画,空格使用,图片懒加载,ico图标,图像vh居中,矢量库,表单

    1.定义及使用模板 模板没有自己的js,也没有自己的监听,而是直接使用页面的js和监听.请更倾向去使用组件 <text>模板的使用</text> <!--模板的定义,要给 ...

  3. 工作中遇到的懒加载问题

    1.懒加载 懒加载(LazyLoad)一直是前端的优化方案之一.它的核心思想是:当用户想看页面某个区域时,再加载该区域的数据.这在一定程度上减轻了服务器端的压力,也加快了页面的呈现速度. 2.遇到的问 ...

  4. java中什么叫懒加载_java懒加载的原理

    聊一下以下名词.概念或用法:lazy.lazy="extra".inverse.fetch.fetch="join".fetch=" subselec ...

  5. 微信小程序--图片懒加载

    定义 图片懒加载又称图片延时加载.惰性加载,即在用户需要使用图片的时候加载,这样可以减少请求,节省带宽,提高页面加载速度,相对的,也能减少服务器压力.惰性加载是程序人性化的一种体现,提高用户体验,防止 ...

  6. 可免费阅读各种漫画的微信小程序,内附好用的图片懒加载组件

    一个基于漫画台App原生应用的漫画阅读的微信小程序.所有漫画可免费观看(前提是得有资源?). 项目地址:github源码 API接口文档:API 前言? 在学习一门新的语言或者框架时,做好的方法应该是 ...

  7. 微信小程序封装懒加载图片

    微信小程序封装懒加载图片 js /components/LazyImage/index.js // components/LazyImage/index.js Component({/*** 组件的属 ...

  8. 微信小程序优化:如何实现图片懒加载?

    前言 当我们在使用微信小程序浏览图片时,不可避免地会遇到加载缓慢的情况.这不仅会影响用户体验,还会耗费用户的流量.那么,有没有一种方法可以让图片在用户需要时再进行加载,从而提升用户体验和减少流量消耗呢 ...

  9. 微信小程序双瀑布流布局+动态懒加载

    效果图 实现代码: 思路: 将双瀑布流分为left.right两个数据流,通过动态获取两边数据的动态高度来进行判断,下一条数据插入低的一方. 因为用户所上传图片高度不一致,所以image的mode属性 ...

最新文章

  1. JAVA多线程之CountDownLatch
  2. 因为WPFe JavaScript到了不得不学的地步
  3. TP5与TP3.X对比
  4. PTS + ARMS打造性能和应用诊断利器
  5. 管理成本降低10%,且看制造企业如何打造“智慧供应链”
  6. linux 三维数据绘图软件,Linux下开发基于.NET的三维绘图程序
  7. Java内存分析—栈,堆,方法区
  8. php设计模式实战之--观察者模式
  9. 十大算法 — 插入排序法【C语言代码诠释】
  10. mysql 序列自增长 恢复到1_MySQL查询结果另外自带一列自增序列号
  11. 对象复制语意学(Object Copy Semantics)
  12. Android网络多线程断点续传下载
  13. 四川2021年5月计算机二级报名时间,四川2021年3月计算机等级考试什么时候报名...
  14. FPGA实现FIR滤波器
  15. Linux裸机开发详解
  16. 8421码5421码2421码余3码
  17. 工作三年的前端开发20k简历标准
  18. 【OQPSK】基于MATLAB/FPGA的OQPSK实现
  19. (书摘)牛奶可乐经济学之机会成本
  20. 2020.2Kali_Linux(超详细❤亲测❤)下载(附下载好的网盘资源)及安装教程

热门文章

  1. 明矾、白醋泡手脚可以治疗手脚多汗
  2. 战略制定4大关键要点
  3. 碧绿色房间(密室逃脱二)攻略
  4. Web of Science爬虫实战(Post方法)
  5. 习题5-4 使用函数求素数和 (20 分)
  6. Java 8新特性(三):Optional类
  7. 第一本全方位阐述华为端到端战略管理体系的著作《华为战略管理法:DSTE实战体系》出版了!!
  8. 知识图谱课程报告-关系抽取文献综述
  9. Ubuntu+Pytorch开发入门整理——环境搭建
  10. linux 垃圾桶命令,linux自制垃圾筒 避免rm误删文件