element-ui 源码架构

Posted mengfangui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了element-ui 源码架构相关的知识,希望对你有一定的参考价值。

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 源码架构的主要内容,如果未能解决你的问题,请参考以下文章

element-ui 源码架构

饿了么element-ui源码解读 button

基于vue element-ui整理了一套Web后台的基础架构代码

Java项目:电影院会员管理系统(java+SpringBoot+Vue+element-ui+maven+mysql)

《Docker 源码分析》全球首发啦!

修改element-ui源码使日期范围date-picker支持年范围选择