码迷,mamicode.com
首页 > 其他好文 > 详细

element-ui 源码架构

时间:2018-09-29 17:41:40      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:ide   img   r.js   dcl   logs   结构   input   ima   入口   

1、项目结构

技术分享图片

技术分享图片

2、src下的入口文件

https://github.com/ElemeFE/element/blob/dev/src/index.js

入口文件实现的功能为:

(1)国际化配置

(2)组件全局注册

(3)在prototype上挂载共用方法

技术分享图片

3、自定义指令directives

自定义指令directives主要定义了2种情形:

(1)mousewheel.js

mousewheel.js主要使用mousewheel.js(https://github.com/basilfx/normalize-wheel)来实现鼠标滚轮事件。

mousewheel.js应用在table组件中,如“固定表头”,“流体高度”中。

技术分享图片

 

(2)repeat-click.js

repeat-click.js就是“函数防抖”!请参考https://www.cnblogs.com/mengfangui/p/9515993.html

技术分享图片

主要用在InputNumber 计数器中,控制用户点击频率。

技术分享图片

4、locale文件夹设置国际化语言

5、mixins

(1)emitter.js

emitter.js中定义2个函数:

broadcast(componentName, eventName, params):广播给子组件(向子组件方向传递)
dispatch(componentName, eventName, params):分发给父组件(向父组件方向传递)
这2个函数在组件中使用非常多,所以很多组件中都定义了“componentName”自定义属性,便于广播和分发。
技术分享图片

(2)focus.js

使dom元素获取焦点

技术分享图片

(3)locale.js

国际化输出。

技术分享图片

 

//使用 
import Locale from ‘element-ui/src/mixins/locale‘;
{{ t(‘el.colorpicker.clear‘) }}

 (4)migrating.js

migrating.js 主要目的是在浏览器控制台输出 element ui已经移除的一些属性

 6、collapse-transition.js
函数式组件(待研究)

 7、utils通用库

(1)clickoutside.js

点击元素外面才会触发的事件。
  import Clickoutside from ‘element-ui/src/utils/clickoutside‘;

//自定义指令
directives: { Clickoutside },

//使用
v-clickoutside="close"

(2)date.js

日期格式化js。修改自fecha:https://github.com/taylorhakes/fecha

 

(3)dom.js

对dom元素进行操作,如hasClass,addClass,removeClass,getStyle,setStyle,on(绑定事件),off(解除事件)

(4)util.js

util.js定义一些常用函数:hasOwn,getValueByPath,valueEquals。

(5)vdom.js

vnode判断,vodne获取。

技术分享图片

 

element-ui 源码架构

标签:ide   img   r.js   dcl   logs   结构   input   ima   入口   

原文地址:https://www.cnblogs.com/mengfangui/p/9724740.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!