ucharts的使用

本文介绍了如何在小程序中解决echarts内存泄漏问题,转向ucharts 2.0的使用,包括在线配置、组件封装和动态调整配置的过程。重点讲解了ucharts的配置步骤和注意事项,如人性化配置、组件示例和常见不便之处。
摘要由CSDN通过智能技术生成

最近发现小程序使用echarts出现了内存泄漏的问题,使用官方的clear()和dispose()方法,仍然没有得到解决,不得已换成ucharts,网上找了下,发现大多数都是1.0的教程,但是官方推荐使用2.0。看了半
天,总结了大致的使用方法。
1.首先,hbuilderx的版本要是3.1以上,从uniapp的插件市场导入ucharts,地址:https://ext.dcloud.net.cn/plugin?id=271
导入后的目录:
在这里插入图片描述

2.与echarts不同,ucharts的配置非常的人性化,在线配置网址:https://www.ucharts.cn/
进入首页后,点击‘在线工具’,然后点击‘在线生成工具’,如图:
在这里插入图片描述
左边是常用配置,右边是效果
chartData是存放数据的地方,
右下方的‘配置代码config-ucharts.js’,是你的配置转换成代码的结果,如图:
在这里插入图片描述
3.配置完成后,打开目录的‘config-ucharts.js’文件,复制上面‘配置代码config-ucharts.js’的代码粘贴进js文件中,如图:
在这里插入图片描述
在这里插入图片描述
可以自定义名称,如代码中的‘demotype’,自定义名称记得上面的type数组和categories数组两个地方也要添加,这样就配置好了一种图形。
4.封装自己的组件,以折线图为例,配置了demotype,在组件的type赋值demotype,就会使用到你刚才的配置。就是说,你想要使用不同图形的不同的配置,只需要王往config-ucharts.js文件中添加,然后自定义名称,使用的时候,type为你自定义的名称即可。如果想要动态替换js文件里的配置,就要使用:opts,比如下面的组件我想替换最小值:

<template>
	<view class="charts-box">
		<u-charts type="demotype" :opts="config" :chartData="chartData" :errorShow="false" background="none" :animation="false"
			:tooltipShow="false" :ontap="false" :onmouse="false" />
		</u-charts>
	</view>
</template>

<script>
	import uCharts from '../echart/u-charts/components/qiun-data-charts/qiun-data-charts.vue'
	export default {
		components: {
			uCharts
		},
		props: {
			valueList: {
				type: Array,
				default: () => [],
			},
			xAxisList: {
				type: Array,
				default: () => [],
			},
			legendList: {
				type: Array,
				default: () => [],
			},
			leftYMax: {
				type: Number,
				default: 5.3
			},
			leftYMin: {
				type: Number,
				default: 3.8
			}
		},
		watch: {
			xAxisList: {
				handler() {
					this.change()
				},
				deep: true
			},
			valueList: {
				handler() {
					this.change()
				},
				deep: true
			},
			legendList: {
				handler() {
					this.change()
				},
				deep: true
			}
		},
		created() {
			this.change()
		},
		data() {
			return {
				chartData: {
					"categories": [
						"2016\n上学期",
						"2017\n上学期",
						"2018\n上学期",
						"2019\n上学期",
						"2020\n上学期",
						"2021\n上学期"
					],
					"series": [{
							"name": "成绩",
							"data": [
								40,
								30,
								55,
								110,
								24,
								58
							],
							"textColor": "#3BC2E4"
						},
						{
							"name": "分数",
							"data": [
								120,
								140,
								105,
								170,
								95,
								160
							],
							"textColor": "#FFA72C"
						}
					]
				},
				config: {}
			}
		},
		methods: {
			change() {
				if (this.valueList.length == 0 || this.legendList.length == 0 || this.xAxisList.length == 0) return
				let leftValue = []
				let rightValue = []
				this.valueList.forEach(e => {
					e.descCountVos.forEach(t => {
						if (t.desc === "左眼") {
							leftValue.push(t.value)
						} else if (t.desc === "右眼") {
							rightValue.push(t.value)
						}
					})
				})
				console.log( this.xAxisList)
				console.log(leftValue)
				console.log(rightValue)
				let min = Math.min(...leftValue, ...rightValue)
				if (min < 3.8) {
					this.config = {
						yAxis:{
							 data:[{min: min}]
						}
					}
				}
				this.chartData.categories = this.xAxisList
				this.chartData.series[0].data = leftValue
				this.chartData.series[1].data = rightValue
			}
		}
	}
</script>

<style scoped>
	.charts-box {
		width: 750rpx;
		height: 300px;
		position: relative;
	}
</style>

5.基本使用就是这样,ucharts也有不少不方便的地方。比如:横坐标的文字不支持换行,y轴的title没法改变位置,折线图的标记点没法自定义大小等。有问题可以加入官方的qq群,提问几乎都是秒回的。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值