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. webbench1.5源码读后总结

    webbench简介 webbench由C语言写成的用于网站压力测试的一个非常简单的工具,它最多可以模拟30000个并发连接去进行测试. webbench的安装和使用可以自行百度,也可以过下这篇文章. ...

  2. STM32 100 pin 多个外设译码方案 - SN74LVC1G29

    http://www.ti.com/lit/ds/symlink/sn74lvc1g29.pdf

  3. ThinkPHP 数据库操作之数据表模型和基础模型 ( Model )

    一.定义数据表模型 1.模型映射 要测试数据库是否正常连接,最直接的办法就是在当前控制器中实例化数据表,然后使用 dump 函数输出,查看数据库的链接状态.代码: public function te ...

  4. 关于OPC Client 编写

    昨天又有人问我 OPC Client 编写,实际是他们不了解OPC 客户端的工作原理,要想写客户端程序,必须知道OPC对象, OPC逻辑对象模型包括3类对象:OPC server对象.OPC grou ...

  5. Ext ComboBox 动态查询

    Ext中的combobox有属性typeAhead:true 可以实现模糊匹配,但是是从开始匹配的,如果需要自定的的匹配,则需要监听beforequery方法,实现自己的匹配查询方法: var gfx ...

  6. cocos2d-x avdrid 试例

    今天将cocos2d-x的示例项目tests编译到android真机运行,以及如何创建cocos2d-x的android项目. 打开cocos2d-x的tests项目,路径为:D:\cocos2d-x ...

  7. 兼容的动态加载JS【原】

    兼容的动态加载JS 屌丝就是悲剧,五一还得宅家里写程序专研技术. 说起动态加载JS,搞web的肯定不陌生,著名的YUI库就有强大的模块化的动态加载JS机制.在代码量不断庞大的今天,动态加载JS作用还是 ...

  8. 《JavaScript编程实战》

    <JavaScript编程实战> 基本信息 原书名:JavaScript programming: pushing the limits 作者: (美)Jon Raasch 译者: 吴海星 ...

  9. django的单元测试框架unittest、覆盖率

    django的单元测试 指定测试范围: 指定运行某些测试文件./manage.py test --pattern="tests_*.py" -v 2 运行所有测试文件./manag ...

  10. Spark向HDFS中存储数据

    程序如下: import org.apache.spark.sql.Row; import org.apache.spark.SparkConf; import org.apache.spark.ap ...