uni-app使用echarts并解决echarts文件过大的问题

这篇具有很好参考价值的文章主要介绍了uni-app使用echarts并解决echarts文件过大的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

这几天写小程序需要用到echarts,又因为我用uni-app开发,因此研究了好久uni-app引用echarts,遇到了也最终解决了好多bug,我感觉大家应该在使用的时候应该都会遇到,因此专门来写一篇博客,希望可以给大家提供一点帮助!!

第一次写,保证超详细!!!

正文

一、uni-app引用echarts

        原生开发和uni-app开发需要引用的echarts不同,我们着重讲uni-app开发,原生的大家另行研究吧。

首先,要去下载插件(用hbuilder编辑器下载特别方便)

echarts-for-wx - DCloud 插件市场

uni-app使用echarts并解决echarts文件过大的问题

 使用HBuilder导入之后,会生成一个js_sdk目录

uni-app使用echarts并解决echarts文件过大的问题

其次,只需要将js_sdk下的uni-ec-canvas目录复制到components目录下面就成功引入了

uni-app使用echarts并解决echarts文件过大的问题

之后,在pages中建立页面并复制如下代码就可以展示图表了

uni-app使用echarts并解决echarts文件过大的问题

(我这里建立的是test)

<template>
	<view>
		<uni-ec-canvas class="uni-ec-canvas" id="uni-ec-canvas" ref="canvas" canvas-id="uni-ec-canvas" :ec="ec">
		</uni-ec-canvas>
	</view>
</template>
 
<script>
	import uniEcCanvas from '@/components/uni-ec-canvas/uni-ec-canvas.vue'
	import * as echarts from '@/components/uni-ec-canvas/echarts'
	let chart = null
	export default {
		components: {
			uniEcCanvas
		},
		data() {
			return {
				ec: {
					lazyLoad: true
				},
				option: {
					tooltip: {
						trigger: 'axis',
						axisPointer: { // 坐标轴指示器,坐标轴触发有效
							type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
						}
					},
					grid: {
						left: '40',
						right: '40',
						bottom: '3%',
						containLabel: true
					},
					xAxis: {
						type: 'category',
						axisTick: {
							show: false,
						},
						nameTextStyle: {
							color: '#666666'
						},
						axisLabel: {
							show: true,
							textStyle: {
								color: '#666',
								fontSize: '12',
								fontWeight:'bold'
							}
						},
						axisLine: {
							lineStyle: {
								color: '#666',
								width: 1
							}
						},
						data: ["寿险", "重疾", "意外", "医疗", "年金"],
					},
					yAxis: {
						type: 'value',
						axisLine: {
							show: false, //y轴线消失
 
						},
						axisLabel: {
							show: true,
							textStyle: {
								color: '#666',
								fontSize: '11'
							}
						},
 
						axisTick: {
							show: false,
						},
					},
					series: [{
						barWidth: 20,
						type: 'bar',
						data: [20, 50, 40, 10, 20],
						itemStyle: {
							normal: {
								//每根柱子颜色设置
								color: function(params) {
									const colorList = ["#FFC600", "#21A5FF", "#FF6000", "#00D69C",
										"#998BFF"
									];
									return colorList[params.dataIndex];
								}
							}
						},
						label: {
							show: true,
							position: 'top',
							formatter: '{c}万',
							color: '#666666',
							fontStyle: 'PingFang SC',
							fontWeight: 'bold',
							fontSize:'8'
						}
					}]
				},
			}
		},
		methods: {
			initChart(canvas, width, height, canvasDpr) {
				console.log(canvas, width, height, canvasDpr)
				chart = echarts.init(canvas, null, {
					width: width,
					height: height,
					devicePixelRatio: canvasDpr
				})
				canvas.setChart(chart)
				chart.setOption(this.option)
				return chart
			},
		},
		onLoad() {
			setTimeout(() => {
				console.log(this.$refs)
			}, 2000)
			this.$refs.canvas.init(this.initChart)
		},
	}
</script>
 
// 这里一定要注意 设置该组件宽高 以及display:block来确保canvas初始化的时候是有宽高的
<style>
	.uni-ec-canvas {
		width: 100%;
		height: 500rpx;
		display: block;
		margin-top: 30rpx;
	}
</style>

运行到开发者工具就可以看到了(记得在pages.json中设置启动页)

uni-app使用echarts并解决echarts文件过大的问题

如下是运行页面 

uni-app使用echarts并解决echarts文件过大的问题

二、解决echarts.js文件过大的问题

        首先,要去echarts官网自定义构建并下载文件ECharts 在线构建 (apache.org)

         uni-app使用echarts并解决echarts文件过大的问题

                 下载的是echarts.min.js文件

                其次就是替换文件了

                将项目中的echarts.js替换成echarts.min.js文件

uni-app使用echarts并解决echarts文件过大的问题

并修改导入的文件

 有两个文件要修改

一是uni-ec-canvas.vue,二是我们建立的test.vue

将echarts.js修改成echarts.min.js

uni-app使用echarts并解决echarts文件过大的问题

修改完之后大家肯定会发现,为啥报错了!!

uni-app使用echarts并解决echarts文件过大的问题

别急,下面我们接着来

我们打开echarts.min.js

搜索字符串  t.addEventListener

uni-app使用echarts并解决echarts文件过大的问题

uni-app使用echarts并解决echarts文件过大的问题

搜索到之后,在   t.addEventListener后面添加   ?.  

uni-app使用echarts并解决echarts文件过大的问题

 保存编译之后就好啦!

但是!!!!!!

大伙有时候会出现,即便我们使用了echarts.min.js,编译时压缩js脚本,主包还是太大了!!!

uni-app使用echarts并解决echarts文件过大的问题

这时候就得发行代码了。。。

uni-app使用echarts并解决echarts文件过大的问题

 之后选择微信小程序发行就可以了

uni-app使用echarts并解决echarts文件过大的问题

如果还是不行!!!

那我们就得用最后一招了!!!

分包!!!!

马上到凌晨两点了。。。有空再更吧。。。

可移步查看我在小程序中的应用

记账小程序 微信小程序 源码 uniapp vue3_没糖de药房的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-495867.html

到了这里,关于uni-app使用echarts并解决echarts文件过大的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【App端】uni-app使用百度地图api和echarts省市地图下钻

    【App端】uni-app使用百度地图api和echarts省市地图下钻

    近期的app项目中想加一个功能,展示全国各地的某一数据统计情况,想来想去,用echarts做地图数据可视化直观且美观。于是就去研究了如何使用,其实在移动端使用echarts地图踩的bug挺多的,总结如下。 JavaScript API GL账号和获取密钥 1、获取SHA1:Android平台云端打包 - 公共测试

    2024年02月11日
    浏览(46)
  • 实际记录uni-app使用uni-download和uni.saveFile下载保存文件遇到的问题以及解决方法

    app里的开发的小程序需要下载文件功能以及一个下载中心页面可以查看所有下载的文件,使用了uni.download下载以及uni.saveFile保存文件 下载中心页面实现逻辑 1.下载文件后保存文件名和uni.saveFile返回的路径uni.setStorageSync到缓存里 2.下载中心读取uni.getStorageSync缓存的文件列表 通

    2024年02月12日
    浏览(64)
  • 解决gitee仓库中 .git 文件夹过大的问题

    解决gitee仓库中 .git 文件夹过大的问题

    最近,许多项目都迁移到gitee。使用的也越来越频繁,但是今天突然收到一个仓库爆满的提示。让我一脸懵逼。本文将详细为你解答,这种情况如何处理。 我收到的报错如下: 看了下,大概意思是一个仓库体积最大不能超过1GB,但是现在我已经超过3GB了。。。 我第一个想法

    2024年02月03日
    浏览(47)
  • git仓库清理瘦身解决 .git文件夹过大的问题

    git仓库清理瘦身解决 .git文件夹过大的问题

    git仓库清理找了很多资料和方案都没有很完美执行成功的;现在找到一个完美方案,分享给大家;希望能帮助大家 1、gitlab代码开发了仓库开发了五年了,代码只有10M;clone的时候要700多兆很浪费时间 2、创建分支和切换分支耗时,导致电脑崩溃 3、公司内部接入codereview服务;

    2024年02月02日
    浏览(85)
  • uni-app的nvue文件国际化不翻译问题解决办法

    uni-app的nvue文件国际化不翻译问题解决办法

    官网上的nvue国际化方式介绍的实在是太简单了,记得要引入下message文件,还要用uni.setLocale()设置下,但是不管我怎么引入都会报错。 所以我直接把文件拿过来了,通过对象的方式去取。 完美解决!

    2024年02月11日
    浏览(10)
  • Docker:overlay2浅析以及解决overlay2 文件过大的问题

    Docker:overlay2浅析以及解决overlay2 文件过大的问题

    最近在学习docker的实现时看到这么一个概念:Union File System,先让我们来介绍介绍它。 定义:联合文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unit

    2024年02月07日
    浏览(9)
  • 【Python小工具】解决Python的Pyinstaller将.py文件打包成.exe可执行文件后文件过大的问题

    在文章 【Python小项目】Python的GUI库Tkinter实现随机点名工具或抽奖工具并封装成.exe可执行文件中我们实现了一个python小项目的制作并将其打包成了.exe可执行文件。但是,当我们查看了一下文件大小后,好家伙,一百多行代码打包完竟然有242M。于是,我们静下心来思考,是不

    2024年02月10日
    浏览(14)
  • 微信小程序中使用字体图标,解决字体图标包过大的问题

    在微信小程序开发中,我们经常使用字体图标来美化界面和展示各种功能。然而,当我们的小程序主包大小超过2M时,可能会遇到一个问题:字体图标的文件很大,导致整个包的大小超出了限制。为了解决这个问题,我们可以使用wx.loadFontFace方法来远程加载字体图标。 步骤一

    2024年02月12日
    浏览(41)
  • Linux 清理磁盘空间&使用du指令排查服务器磁盘占用过大的文件

    Linux 清理磁盘空间&使用du指令排查服务器磁盘占用过大的文件

    命令:df -h 参数说明: -a:列出所有的文件系统,包括系统特有的/proc等文件系统 -k:以KB的容器显示各文件系统 -m:以MB的容量显示各文件系统 -h:以人们较易阅读的GB,MB,KB等格式自行显示 -H:以 M=1000K代替M=1024K的进位方式 -T:连同该分区的文件系统名称(例如ext3)也列出

    2024年02月06日
    浏览(15)
  • 前端vue uni-app多图片上传组件,支持单个文件,多个文件上传 步骤条step使用

    前端vue uni-app多图片上传组件,支持单个文件,多个文件上传 步骤条step使用

    快速实现多图片上传组件,支持单个文件,多个文件上传 步骤条step使用; 阅读全文下载完整代码请关注微信公众号: 前端组件开发 效果图如下: 使用方法   使用方法 HTML代码部分   html JS代码 (引入组件 填充数据)   javascript

    2024年02月08日
    浏览(16)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包