HighCharts踩坑日记

在项目中需要实现3D漏斗图,从Echarts转向HighCharts,过程中遇到了模块引用错误。在Main.js全局注册HighCharts并尝试使用官网3D漏斗图配置时,发现缺少funnel3d模块。解决方法是按照官网示例导入所需模块,但后续运行仍报错。经过仔细排查,发现是funnel3d.js的依赖问题。通过查看编辑示例,引入了3D漏斗图所需的其他资源,注意Highcharts3d模块路径与其他模块不同。最终成功实现3D漏斗图效果。

因业务需求,需要用到3d漏斗图,之前项目中一直用的echarts,没有找到3d的,于是开始踩坑HighCharts。

npm install highcharts --save
npm install highcharts-vue

Main.js中全局注册(也可采用局部注册的形式),见官方文档,传送门

import Vue from 'vue'
import Highcharts from 'highcharts'
import HighchartsVue from 'highcharts-vue'

Vue.use(Highcharts)
Vue.use(HighchartsVue)
<div class="chart_content" id="funnelChart"></div>
<script>
 export default {
    data() {
      return {
      	options:{}
	  }
	}
...
	mounted(){
	   Highcharts.chart('funnelChart', this.options);
	},
}
</script>

此处因为我需要用到其中的3d漏斗图,于是我直接复制的官网实例中的配置options,然后直接报错,
在这里插入图片描述
原因:经百度和查找官网,提示说是缺少模块funnel3d,这里的options中用到了该模块,但是没有引用,所以报错。
在这里插入图片描述
解决:像官网中的方式导入需要用到的模块,并将Highcharts作为参数传递给该模块

  import Highcharts from 'highcharts'
  import funnel3d from 'highcharts/modules/funnel3d';
  funnel3d(Highcharts);

然后运行代码,出现新的错误提示:
在这里插入图片描述
这下就很懵逼了,调试了很久,都不知的是哪里的错。后来仔细阅读报错提示,发现错误源于funnel3d.js,但funnel3d.js已经引用,引用 了还报错,可能就是该模块还需要依赖什么东西,而我没有引入,所以报错。再次查看示例中,发项这里有个编辑示例按钮,打开后发现了该3d漏斗图所需要的其他资源。
在这里插入图片描述
在这里插入图片描述
然后依葫芦画瓢将剩下的几种资源都按上述方式引入进来

  import Highcharts from 'highcharts'
  import Highcharts3d from 'highcharts/highcharts-3d';
  import funnel3d from 'highcharts/modules/funnel3d';
  import exporting from 'highcharts/modules/exporting';
  import oldie from 'highcharts/modules/oldie';
  import cylinder from 'highcharts/modules/cylinder';

  Highcharts3d(Highcharts);
  funnel3d(Highcharts);
  exporting(Highcharts);
  oldie(Highcharts);
  cylinder(Highcharts);

需要注意的是这里的Highcharts3d 的路径和其他模块的路径不一样,这个是放在highcharts/'下的,其他的放在highcharts/modules/下的。
最后效果图如下:
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值