vue里使用echarts,前端echarts如何在vue中使用

  vue里使用echarts,前端echarts如何在vue中使用

  本文主要给大家总结一下vue.js与echarts整合时遇到的一些问题。通过示例代码详细介绍,对您的学习或工作有一定的参考价值。和有需要的朋友一起学习吧。

  

前言

  最近做了Beetlex的数据分析平台,在这个产品的开发中涉及了大量的数据图展示功能。因为产品前端是vuejs开发的,所以在echarts的集成上会有一些问题。在这里,我们将主要说明存在的问题和解决方法。

  解释之前,先分享一下实际效果。详见http://data.beetlex.io。

  

控件ID

  在vuejs中,常用的函数往往被组件打包,为了重用不同的图表,也打包成组件使用。这个封装过程中有一个问题,就是图表元素DIV的ID。因此,组件构建图DIV的ID也必须唯一。您可以通过封装一个简单的函数来生成一个ID。

  vue . prototype . $ getID=function(){

  page . controlid=page . controlid 1;

  返回page.controlid

  };

  此方法用于获取动态元素ID。

  已安装(){

  这个。ChatID=chat_ 这个。$ getID();

  }

  div :id=ChatID

  /div

  

初始化问题

  使用Vuejs时,一些实例化往往是在mounted()方法中完成的,但如果在这里实例化echarts,就需要注意了。毕竟挂载了不代表所有元素都造好了,会导致获取元素失败。您不能初始化电子图表。所以需要将echarts放入一个方法中,根据情况手动调用,或者延迟调用初始化;为了方便起见,SetTimeout用于初始化。

  setTimeout(()={

  var DOM=document . getelementbyid(this。ChatID);

  这个。Chat=echarts.init(dom,马卡龙);

  这个。Chat.setOption(这个。ChatOption,true);

  }, 300);

  

显示切换问题

  如果需要切换图表的显示,最好不要使用v-if这样的语法,因为这样的语法不会在DOM中构建相关元素,会造成在echarts中创建Canvas元素的问题,导致无法正常工作。最好的方法是通过切换Css来切换显示,以确保构建的DOM元素的内容没有被更改。

  

自适应布局

  在许多情况下,形式的变化和组件的切换会导致echarts无法适应当前的布局。在这种情况下,您需要手动调用echarts的resize方法来重置显示布局。实际上SPA应用中的情况要复杂得多,全屏显示,形式多变,组件化后多级嵌套,很难确定echarts用在哪里。为了满足不同情况的需要,需要一种公共行为来触发这些变化。

  var _ _ resize handlers=[];

  函数__addResizeHandler(处理程序){

  _ _ resize handlers . push(handler);

  };

  function __resize() {

  setTimeout(()={

  __resizeHandlers.forEach(v={

  v();

  });

  }, 100);

  }

  window.onresize=function () {

  __resizeHandlers.forEach(v={

  v();

  });

  };

  vue . prototype . $ add resize=function(handler){

  __addResizeHandler(处理程序);

  };

  vue . prototype . $ resize=function(){

  _ _ resize();

  };

  只需实现一个简单的resize注册和调用机制,使用echarts的组件定义以下代码就可以完美解决。

  这个。$addResize(r={

  如果(这个。聊天)

  这个。chat . resize();

  });

  

附:Echarts下载使用

  您可以通过以下方式获得ECharts。

  1.从Apache ECharts(孵化)官网下载界面获取官方源码包,进行构建。

  2.在ECharts的GitHub得到它。

  3.通过npm获取echarts,npm安装echarts - save,

  4、通过jsDelivr等CDN引入

  下图是成功的。

  引入

  (下载后的前提)

  1.通过标签直接引入构建的echarts文件:

  !声明文档类型

  超文本标记语言

  头

  meta charset=utf-8

  !-介绍ECharts文件-

  script src= e charts . min . js /script

  /头

  /html

  2.全球参考

  在vue的main.js中

  //介绍电子海图

  从“电子海图”导入电子海图

  Vue.prototype.$echarts=echarts

  3.电子零件被直接引入到组件中,

  (如果您想在其他组件中使用echarts,您必须重新引入它们)

  从“echarts”导入e charts;

  

总结

  关于vue.js集成echarts遇到的问题这篇文章就到这里了。更多关于vue.js集成echarts的问题,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: