vue封装highcharts组件

1 篇文章 0 订阅
1 篇文章 0 订阅

如果项目中图标数据比较多的话,每个页面都引入一次会比较繁琐。可以用vue封装成组件进行复用。

安装

首先需要在自己的vue项目中安装highcharts插件     

npm  install highcharts  --save

yarn或者cdn引入的方式可参考官网(https://www.highcharts.com.cn/docs/start-download

封装组件

1、新建vue文件   hcharts.vue

2、父子组件之间传递的参数有 id,options和time。id和option是生成图标必须参数。time是用来动态更新子组件的。比如options的参数很多都是通过数据交互从后台取回来的,或者按钮之间来回切换显示不同的图表。如果没有加time监听只会显示第一次加载的图标。所以通过定义time着参数,当数据有变化时,可以通过props传递一个时间戳就会更新。效果图如下:

 

关于图表渐变色设置可以参考我写的另一篇博客(https://blog.csdn.net/wang1006008051/article/details/90269153

代码:

<template>
	<div :id="id" :option="option" :time="time"></div>
</template>

<script>
	import HighCharts from "highcharts"
	export default {
		props: {
			id: {
				type: String
			},
			option: {
				type: Object
			},
			time: ""
		},
		mounted() {
			HighCharts.chart(this.id, this.option)
		},
		watch: {
			time() {
				HighCharts.chart(this.id, this.option);
				deep:true
			}
		}
	}
</script>

父组件调用

<template>
	<hcharts id="thisId" :option="Options" :time="timeTemp"></hcharts>
</template>

<script>
	import hcharts from './hcharts.vue'
	export default {
		components: {
			hcharts
		},
		data() {
			return {
				timeTemp: "",
				Options: {}
			}
		},
		mounted() {
			this.getData()
		},
		methods: {
			getData() {
                let _self = this
				this.$axios({
					url: url,
					method: 'post',
					data: params
				}).then(res => {
                _self.Options = res  
				_this.timeTemp = new Date().getTime()
				})
			}
		}
	}
</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值