我的学习笔记12.8

本文深入解析Echarts的组件渲染,包括DataZoom的Inside和Slider类型,VisualMap的Continuous和Piecewise类型,以及Tooltip组件的工作原理。通过分析各个组件的Model和View,阐述了其在Echarts中的实现和交互机制。
摘要由CSDN通过智能技术生成

2021SC@SDUSC

echarts源码分析

各个Component的渲染过程

在echarts中,Component(组件)是除Series(图表)外的其他配置项,有datazoom(区域缩放)、visualMap(视图映射)、tooltip(提示框组件)、toolbox(工具栏)、brush(区域选择组件)、timeline(时间轴)、graphic(原生图形组件)、dataset(数据集)、marker(包括markPoint(图标标注)、markLine(图表标线)、markArea(图表标域)等。用户通过传递option对象来设置相应的Component。

这篇文章中将介绍tooltip、dataZoom、visualMap这三项常用的组件。


区域缩放 DataZoom

dataZoom分为inside和slider两种类型。

公共文件

DataZoomModel通过extendComponentModel扩展自Component Model,重写了defaultOption属性以及init、mergeOption等方法。

DataZoomView通过extend扩展自Component View,重写了render方法并定义了getTargetCoordInfo方法。

Slider

SliderZoomModel通过extend扩展自DataZoomModel,重写了defaultOption属性

SliderZoomView通过extend扩展自DataZoomView,重写了render、remove、dispose等方法,主要实现代码如下:

render: function (dataZoomModel, ecModel, api, payload) {
    // 调用DataZoomView中的render方法
    SliderZoomView.superApply(this, 'render', arguments);
    ...
    if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {
        // 绘制
        this._buildView();
    }
    // 更新
    this._updateView();
}
_buildView: function () {
    var thisGroup = this.group;

    thisGroup.removeAll();

    this._resetLocation();
    this._resetInterval();

    var barGroup = this._displayables.barGroup = new graphic.Group();

    // 绘制背景,通过graphic.Rect绘制背景,包括可视层以及Click panel
    this._renderBackground();
    // 绘制handle,通过graphic.Rect绘制选择的区域,并绑定拖拽相关以及mouseover
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值