如果你用mpvue,而且还想用echarts,那么这个包你可以以来一下

https://github.com/F-loat/mpvue-echarts

考虑到多个页面都休要用,所以抽出来作为一个组件,总得来说根据官方的例子小改动了一下

vue文件

 <template>
<div class="echarts-wrap">
<mpvue-echarts :echarts="echarts" :onInit="handleInit" canvasId="getCanvasId" ref="echarts" />
</div>
</template> <script src="./control.js"></script> <style scoped lang="stylus" src="./style.styl"></style>

js文件

 import echarts from 'echarts'
import mpvueEcharts from 'mpvue-echarts'
import { messageTip, wxHideLoading, wxLoading } from "../../utils/wxapi"; export default {
data () {
return {
echarts,
echartsArr: [],
}
},
watch: {
getOptions: { // 每次切换数据源,都需要重新渲染,所以用watch观察数据是否改变
handler (newValue, oldValue) {
let chart = this.echartsArr[this.getCanvasId]
if (newValue) {
this.initChart(newValue)
} else {
this.initChart(oldValue)
}
},
deep: true
}
},
props: [
'getOptions',
'getCanvasId'
],
computed: {},
methods: {
initChart (value) {
let _this = this
// wxLoading('加载中')
// this.clickFlag = false
setTimeout(() => { // 渲染需要延时执行,不要问为什么
// _this.$refs.echarts.clear()
_this.getOptions = value
_this.$refs.echarts.init()
wxHideLoading()
}, 200) }, handleInit(canvas, width, height) {
let chart = echarts.init(canvas, null, {
width: width,
height: height
})
canvas.setChart(chart)
chart.clear() // 防止重复渲染,所以在构建之前,清空一下
chart.setOption(this.getOptions, true) // 重新构建数据源
this.echartsArr[this.getCanvasId] = chart
return chart
}
},
components: {
mpvueEcharts
},
onLoad () {
},
onShow () {
},
onHide () {
},
onUnload () {
}
}

css文件没什么好说的

然后在主页面调用该组件

 1 mpvue-echarts(:getOptions="wxOptions" :getCanvasId="canvasId") 

在control.js中调用选项卡切换方法

  /**
* 延时切换数据
*/
changeData(index) {
switch (index) {
case 0:
this.canvasId = 'line'
this.wxOptions = this.ecDay
break
case 1:
this.canvasId = 'bar'
this.wxOptions = this.ec
break
}
},
												

小程序mpvue中动态切换echarts图表的更多相关文章

  1. 微信小程序换皮肤,动态切换菜单栏和导航栏的样式,动态修改TabBar和NavigationBar

    在做微信小程序换皮肤的时候,需要动态修改菜单栏(TabBar)和导航栏(NavigationBar) 但是在小程序中它们的样式是写在app.json里面,而且app.json是静态编译,运行时哪怕你修 ...

  2. 小程序mpvue中flyio的使用方法

    Fly.js 一个基于Promise的.强大的.支持多种JavaScript运行时的http请求库. 有了它,您可以使用一份http请求代码在浏览器.微信小程序.Weex.Node.React Nat ...

  3. 全栈开发工程师微信小程序-上(中)

    全栈开发工程师微信小程序-上(中) width: 750rpx; 750rpx代表与屏幕等宽,rpx的缩写responsive pixel,这个单位是可以根据屏幕大小进行自适应调整的像素单位. 小程序 ...

  4. 微信小程序开发过程中tabbar页面显示的相关问题及解决办法!

    在微信小程序的开发过程中如果有使用过tabbar的同学,我相信一定会遇到一些困扰.为什么有些时候代码中明明已经在app.json里面增加了tabbar,可以页面中就是不显示呢?可不可以有些页面显示ta ...

  5. 微信小程序mpvue项目使用WuxWeapp前端UI组件

    前言:这是一篇简单粗暴的使用指南 在最近的小程序项目里前端UI框架最后选择使用WuxWeapp,这篇文章记录一下如何在小程序mpvue项目中使用该UI组件. 步骤一:下载源码 (地址在这里)主要是里面 ...

  6. ionic 运行过程中动态切换API服务器地址

    ionic 运行过程中动态切换API服务器地址 keywords: ionic,phonegap,cordova,网络制式,动态切换,变更,API,服务器地址,$resource,localstora ...

  7. 微信小程序开发教程 #043 - 在小程序开发中使用 npm

    本文介绍了如何在微信小程序开发中使用 npm 中包的功能,大大提高微信小程序的开发效率,同时也是微信小程序系列教程的视频版更新. 微信小程序在发布之初没有对 npm 的支持功能,这也是目前很多前端开发 ...

  8. 总结微信小程序开发中遇到的坑

    总结微信小程序开发中遇到的坑,一些坑你得一个一个的跳啊,/(ㄒoㄒ)/~~ 1,页面跳转和参数传递实例 首先说一下我遇到的需求有一个我的消息页面,里面的数据都是后端返回的,返回的数据大致如下,有一个是 ...

  9. 解决微信小程序开发中wxss中不能用本地图片

    微信小程序开发中wxss中不能用本地图片,我们可以用将我们的图片传到服务器上,然后直接引用在线地址.但是当我们没有服务器时,我们可以用"图床",这个具体可以百度.这里我们用第二种方 ...

随机推荐

  1. P4050 [JSOI2007]麻将

    传送门 怎么好像没什么人写 $dp$ ...? 设 $f[i][j][k][0/1]$ 表示当前处理完前 $1$ 到 $i$ 的数,上一位开始的顺子有 $j$ 个,当前位开始的顺子有 $k$ 个,是否 ...

  2. k3 cloud注册插件的时候提示,请选择一个有效的插件程序集

    插件类的访问类型需要是public类型的,由于你的插件类没有标记为public类型,所以注册的时候并没有发现有插件,就是下面的单据体没有加载出数据.标记public之后,下面会有你的插件,然后选择对应 ...

  3. react搭建

    https://juejin.im/post/5b4de4496fb9a04fc226a7af

  4. java交换两个变量值a,b的多钟方法

    首先我们定义两个变量用来检查方法可行性 int a=5; int b=3; 方法一,也是最容易想到的,就是建立中间变量法 int temp; temp=a; a=b; b=temp; System.o ...

  5. 18.Linux-CentOS系统根目录空间使用率100%问题?

    问题描述:发现服务器根目录爆满100%? 排查步骤:1.先检查文件索引节点iNode使用率情况,[root@localhost ~]# df -hTi2.查看无用文件是否居多:[root@localh ...

  6. 苹果ios开发

    苹果上架:https://blog.csdn.net/pcf1995/article/details/79650345

  7. 一文了解kudu【转载】

    原文地址:https://www.jianshu.com/p/83290cd817ac

  8. C# 实战笔记

    http://www.cnblogs.com/ymnets/p/3424514.html 学习点 关于IEnumerable和IQueryable两接口的区别 二者都是静态类 区另主要在: (1)所有 ...

  9. 用电脑Python控制Arduino

    python指令: import serial #导入串口通讯库 import time ser=serial.Serial("com4",9600,timeout=1) demo ...

  10. Linux kswapd0 进程CPU占用过高

    图便宜买了个1核1G虚拟机,启动两个jar后cpu飙升直接卡死,查看cpu及内存占用 发现kswapd0进程cpu占用一直居高不下,于是查询资料,总结如下. swap分区的作用是当物理内存不足时,会将 ...