echart实例数据 本地加载_数据分析之组件制作,助你自制炫酷的可视化效果

本文详细指导如何分析组件需求,理解组件构成,包括数据格式、属性设置、预览和源代码编写。重点讲解ECharts实例中实现不规则柱状图和时间轴组件的方法,涉及init、setProperty、resize等关键函数,并提供实际操作步骤和代码示例。
摘要由CSDN通过智能技术生成

“授人以鱼,不如授人以渔”,这句话语出《淮南子·说林训》。道理很简单,鱼是目的,钓鱼是手段,一条鱼能解一时之饥,却不能解长久之饥,如果想永远有鱼吃,那就要学会钓鱼的方法。各位小伙伴看多了各种或奇特或绚丽或强大的组件,怕是早就心痒痒,蠢蠢欲动了。只能欣赏怎么行,今天就要给大家传授如何制作各种组件!

5836054c116180d926ba1661a0906f65.png

第一步:分析组件

分析组件,做组件之前,应该是已经存在设计图,你可以清楚的知道你将要实现一个什么样的组件,具有怎么样的功能。思考一下使用什么方式去实现。

举个简单的例子,全篇会围绕这个这个例子展开。如下图所示:

2ff759140be428c2357632a96838e7a4.png

经过分析通过echarts.js可以实现,有一个不规则形状的柱形图和时间轴。下面进入知识储备阶段。

第二步:了解组件相关重要知识

要学会制作一个组件,当然要对它进行一个基础的了解才能在制作时游刃有余呢。下面我们来了解组件的组成部分,如图所示

ada2f8e6696dad0c2093063baa51d405.png

1、取数定义:定义组件需要的默认数据以及数据格式。

2、属性:添加自定义的属性。比如添加自定义的autoplay属性,在组件里实现逻辑控制以后,就可以通过在属性面板操作,改变组件。

fc096bc4c4fe47de0390b9f162048bba.png

3、预览:可以在制作组件的过程中,边写边查看效果

4、源代码:写静态的html代码。

5、default.js:写组件创建的脚本。js部分有几个重要的函数:

1) init(cwidget, vardata, events, storagedata, resources:组件是创建时会执行init函数,cwidget是该组件对象,vardata以json的格式存储取数,events以json的格式存储用户在右边属性上设置的事件,storagedata以字符串格式储存组件自己需要存储的值,resources以json的格式存储资源及权限校验信息.

2) setProperty(key, value, cwidget):当属性面板发生变化时,想要组件应该做相应的改变,则实现该方法。key为属性名称,value是当前的值,cwidget是组件对象。

1a5f28270fb4618969d474f6718dcac3.png

3) refreshDatas(cwidget, vardata, storagedata):刷新操作,数据改变时,调用该方法,重新渲染数据。

4) resize(cwidget): 组件大小改变时执行,通过实现resize()方法,使得组件自适应。

5) dispose(cwidget): 销毁操作,销毁自己相关的东西。

6、defalut.css:写组件需要的样式表。

备注:如果需要添加脚本或者样式表可以点击加号添加。

2558a53ad0c4df9c19d1abfa4b0d4fec.png

第三步:实际操作

哇,终于来到了实际操作部分,此时的你是头昏脑胀还是信心十足呢?话不多说,我们愉快的开始酷屏制作吧!

1、分析数据格式和需要开放的属性接口。

459d74cd70ed960be88c2b3d3c4a28ff.png

以该组件为例:需要x轴数据,数据格式定为一维数组;需要y轴数据,数据格式定为多维数组;需要时间轴数据,数据格式定为一维数组;

eab9a9a2f33f53204840575865a97093.png

需要开放的属性:是否自动播放属性,播放时间间隔属性。

ef5b92f101c08df712cb02cc401fa3bd.png

2、组件自身的实现,包括静态html,js,css,以本例讲解。

html部分:本例不需要其他html,只需要提供一个父节点。

css部分:父节点百分百撑满容器。

js:创建组件的动态脚本,使用第三方js时,通过EUI.include(“js文件路径”)引入进来。这个例子,js实现步骤:

1、获得echart实例

2、获得echart需要的option参数;

3、调用echart的setOption(option)方法;

4、实现setProperty方法,某一项发生变化就实现响应的动作。

3b1477e4200864ff405b0c82c295ad69.png

5、实现resize()方法,使组件可以自适应,本例只需要调用echart实例的resise()方法。

15cf3965ac65d6f1d825811596569a9d.png

6、实现refreshDatas(),即在数据发生变化时,执行重新渲染组件的操作。

a7d2f8b49c857757e8531a496cae06d3.png

7、最后实现dispose方法,销毁组件相关东西。

f5d4725629939a5a2130842b315f2262.png

组件制作的全过程就都在这里了!你get到了吗?欢迎一遍又一遍的细读哦!

61341a5e1232b88d667cf0e0830b9682.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值