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获取。

 8、可以分模块加载

如:import { Button, Select } from 'element-ui';

原因是:每个模块都有install函数

import ElButton from './src/button';

/* istanbul ignore next */
ElButton.install = function(Vue) {
Vue.component(ElButton.name, ElButton);
}; export default ElButton;

element-ui 源码架构的更多相关文章

  1. element ui源码解析 -- input篇

    el-input是element ui中使用最频繁的组件之一了,分析其构成从四个方面入手:DOM结构,属性,样式,事件入手 DOM结构: <div> <input /> < ...

  2. element ui源码解析 -- button篇

    要看源码就得从最简单的开始,button够简单的了,就从他开始吧. 安装依赖后源码目录在:node_modules/element-ui/packages中,可以看到这里的文件夹命名是不是很熟悉,就是 ...

  3. Element UI 源码—— Carousel 走马灯学习

    参考博客:https://segmentfault.com/a/1190000014384638?utm_source=tag-newest

  4. 如何快速为团队打造自己的组件库(上)—— Element 源码架构

    文章已收录到 github,欢迎 Watch 和 Star. 简介 详细讲解了 ElementUI 的源码架构,为下一步基于 ElementUI 打造团队自己的组件库打好坚实的基础. 如何快速为团队打 ...

  5. 【NopCommerce源码架构学习-一】--初识高性能的开源商城系统cms

    很多人都说通过阅读.学习大神们高质量的代码是提高自己技术能力最快的方式之一.我觉得通过阅读NopCommerce的源码,可以从中学习很多企业系统.软件开发的规范和一些新的技术.技巧,可以快速地提高我们 ...

  6. NopCommerce源码架构详解--初识高性能的开源商城系统cms

    很多人都说通过阅读.学习大神们高质量的代码是提高自己技术能力最快的方式之一.我觉得通过阅读NopCommerce的源码,可以从中学习很多企业系统.软件开发的规范和一些新的技术.技巧,可以快速地提高我们 ...

  7. NopCommerce源码架构详解

    NopCommerce源码架构详解--初识高性能的开源商城系统cms   很多人都说通过阅读.学习大神们高质量的代码是提高自己技术能力最快的方式之一.我觉得通过阅读NopCommerce的源码,可以从 ...

  8. Nop--NopCommerce源码架构详解专题目录

    最近在研究外国优秀的ASP.NET mvc电子商务网站系统NopCommerce源码架构.这个系统无论是代码组织结构.思想及分层都值得我们学习.对于没有一定开发经验的人要完全搞懂这个源码还是有一定的难 ...

  9. NopCommerce源码架构

    我们承接以下nop相关的业务,欢迎联系我们. 我们承接NopCommerce定制个性化开发: Nopcommerce二次开发 Nopcommerce主题开发 基于Nopcommerce的二次开发的电子 ...

  10. 一张思维导图辅助你深入了解 Vue | Vue-Router | Vuex 源码架构

    1.前言 本文内容讲解的内容:一张思维导图辅助你深入了解 Vue | Vue-Router | Vuex 源码架构. 项目地址:https://github.com/biaochenxuying/vu ...

随机推荐

  1. Centos安装Perforce

    Author: JinDate: 20140827System: CentOS release 6.5 (Final) 参考:http://www.cnblogs.com/itech/archive/ ...

  2. 华为S5300系列升级固件S5300SI-V200R001C00SPC300.cc

    附带web,V200版本的第一个固件. 附件: 链接:https://pan.baidu.com/s/1QyXIIVho9AkhxUFYJYAkcw  密码:gaxm

  3. Linux新内核:提升系统性能 --Linux运维的博客

    http://blog.csdn.net/linuxnews/article/details/52864182

  4. SqlServer收缩日志文件

    通过收缩的方法可以释放所占空间. 第一步:将数据库的模式调整为简单模式 右击数据库名->'属性'->'选项'->恢复模式改成'简单'->点'确定'按钮. 第二步:收缩文件 右键 ...

  5. 访问自身子画面的方法 [self.view viewWithTag:100];

    UIImageView *view1 = (UIImageView*)[self.view  viewWithTag:100];

  6. KJHttp框架使用讲解

    摘要 本文原创,转载请注明地址:http://kymjs.com/code/2015/05/12/01写给那些在用.想用.还没有用过KJFrame的朋友. KJFrameForAndroid总共分为四 ...

  7. EJB实体Bean怎样和数据库中表关联?

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ejb-jar PUBLIC "- ...

  8. JavaScript 触发click事件 兼容FireFox,IE 和 Chrome

    解决了火狐下无法触发click事件的问题 <script language="javascript"> function test2(name) { if(docume ...

  9. Python Post img

    from poster.encode import multipart_encode from poster.streaminghttp import register_openers import ...

  10. Asp.Net Core App 部署故障示例 1

    相关阅读:Windows + IIS 环境部署Asp.Net Core App 1.  HTTP Error 502.5 – Process Failure 环境 Windows Server 201 ...