uniapp_echarts_h5_vue3封装

本文详细介绍了如何在uniapp基于Vue3的H5项目中安装和使用ECharts库,包括组件结构、HTML、CSS和JS代码示例,以及父组件如何调用子组件并传递参数以显示饼图数据。
摘要由CSDN通过智能技术生成

该组件只适用于 uniapp_vue3 开发的 h5 项目,小程序均不支持

一、安装 echarts
npm install echarts
或
yarn add echarts
二、在 components 中新建 echartsH5 文件夹并新建 echartsH5.vue 文件
1、写入 html 代码
<template>
	<view>
		<view :id="domId" class="main"></view>
	</view>
</template>
2、写入 css 代码
.main {
	width: 100%;
	height: 100%;
}
3、写入 js 代码
import * as echarts from 'echarts';
import { onMounted } from 'vue';
const { option, domId } = defineProps({
	option: {
		type: Object,
		default: () => {}
	},
	domId: {
		type: String,
		default: ''
	}
})

const init = () => {
	let chartDom = document.getElementById(domId);
	let myChart = echarts.init(chartDom);
	let options;

	options = option;

	options && myChart.setOption(options);

	window.addEventListener('resize', () => {
		myChart.resize();
	})
}

onMounted(() => {
	init();
})
三、父组件调用

组件 id 为父级传递的活值,防止 id 出现重复的情况

1、html 代码
<echartsH5 class="echarts-dom" :option="option" domId="domId"></echartsH5>
2、js 代码
import { ref } from 'vue';
const option = ref({
	tooltip: {
		trigger: 'item'
	},
	legend: {
		top: '5%',
		left: 'center'
	},
	series: [{
		name: 'Access From',
		type: 'pie',
		radius: ['40%', '70%'],
		avoidLabelOverlap: false,
		itemStyle: {
			borderRadius: 10,
			borderColor: '#fff',
			borderWidth: 2
		},
		label: {
			show: false,
			position: 'center'
		},
		emphasis: {
			label: {
				show: true,
				fontSize: 40,
				fontWeight: 'bold'
			}
		},
		labelLine: {
			show: false
		},
		data: [{
				value: 1048,
				name: 'Search Engine'
			},
			{
				value: 735,
				name: 'Direct'
			},
			{
				value: 580,
				name: 'Email'
			},
			{
				value: 484,
				name: 'Union Ads'
			},
			{
				value: 300,
				name: 'Video Ads'
			}
		]
	}]
});
3、css代码
.echarts-dom {
	width: 100%;
	height: 500rpx;
}
四、效果展示

效果图

  • 12
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值