Echarts项目分析

2021SC@SDUSC

charts的源码是在zrender的基础上封装的,所以要看明白echarts源码须要先了解zrender的源码。

* Stroage(M) : shape数据CURD管理 
* Painter(V) : canvase元素生命周期管理,视图渲染,绘画,更新控制 
* Handler(C) : 事件交互处理,实现完整dom事件模拟封装 
* shape : 图形实体,分而治之的图形策略,可定义扩展 
* tool : 绘画扩展相关实用方法,工具及脚手架 
* animation : 动画扩展,提供promise式的动画接口和常用缓动函数

MVC对应三个文件的结构很简单,其实就是一个构造函数,一个prototype原型扩展。

 M–数据管理层(Storage.js)
我们看构造函数,将元素存储在this._elements(对象)、this._roots(数组)和this._displayList(数组)中,然后负责在其中进行增(addRoot,addToMap)删(delRoot,delFromMap)改(updateDisplayList)查(get,getDisplayList)。
C–控制层(Handle.js)
Handler负责事件处理,包括’click’, ‘dblclick’, ‘mousewheel’, ‘mouseout’, ‘mouseup’, ‘mousedown’, ‘mousemove’, ‘contextmenu’等。我们知道canvas API没有提供监听每个元素的机制,这就需要一些处理。处理的思路是:监听事件的作用坐标(如点击时候的坐标),判断在哪个绘制元素的范围中,如果在某个元素中,这个元素就监听该事件。

V–视图层(Painter.js)
Painter负责真正的绘图操作,这里是比较繁重的部分 
* 1.负责canvas及其周边DOM元素的创建与处理 
* 2.负责调用各个Shape(预定义好的)进行绘制 
* 3.提供基本的操作方法,渲染(render)、刷新(refresh)、尺寸变化(resize)、擦除(clear)等

Painter是调用canvas API实现的绘制,包括颜色,渐变色,变换,矩阵变化,绘制图片、文本等。IE8使用excanvas兼容。
 

猜你喜欢

转载自blog.csdn.net/weixin_52028094/article/details/120638100