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. ThinkPHP使用纯真IP获取物理地址时中文乱码问题

    今天在用ThinkPHP通过纯真IP获取地址时,发现输出结果中文乱码,如图: 经查发现ThinkPHP的IpLocation.class.php类文件中说明:“由于使用UTF8编码 如果使用纯真IP地 ...

  2. idea安装Lombok及使用介绍

    原文:https://blog.csdn.net/motui/article/details/79012846 Lombok使用 介绍 在项目中使用Lombok可以减少很多重复代码的书写.比如说get ...

  3. python笔记29-队列Queue

    前言 Python的Queue模块提供一种适用于多线程编程的FIFO实现.它可用于在生产者(producer)和消费者(consumer)之间线程安全(thread-safe)地传递消息或其它数据,因 ...

  4. 5.跟我学solr---QueryResponseWriter具体解释

    简单介绍 QueryResponseWriter是solr的一个插件,与上一章讲的SolrRequestHandler是配对的,用于定义solr查询结果的返回格式. 回到solr admin的查询页面 ...

  5. copy and paste ,做到这样也很牛逼了

    db笔记本 mysql资源 mysql5.1中文参考手册 mysql管理 基于linux使用mysql二进制包安装mysql5.5 mysql client命令行选项 mysqld服务器系统变量和状态 ...

  6. go omitempty 忽略类型

    nil false 0 每个结构字段的编码可以通过结构字段标签中“json”键下存储的格式字符串来定制.格式字符串给出字段的名称,可能后跟逗号分隔的选项列表.名称可能为空,以指定选项而不覆盖默认字段名 ...

  7. Ip和long互转

    // <summary> /// 将127.0.0.1形式的IP地址转换成十进制整数 /// </summary> /// <param name="strIp ...

  8. MapReduce任务分析与讨论MapReduce job explained

    In the last post we saw how to run a MapReduce job on Hadoop. Now we're going to analyze how a MapRe ...

  9. 深入理解Java中的组合和继承

    Java是一个面向对象的语言.每一个学习过Java的人都知道,封装.继承.多态是面向对象的三个特征.每个人在刚刚学习继承的时候都会或多或少的有这样一个印象:继承可以帮助我实现类的复用.所以,很多开发人 ...

  10. 数据库实例: STOREBOOK > 用户 > 编辑 用户: PUBLIC

    ylbtech-Oracle:数据库实例: STOREBOOK  >  用户  >  编辑 用户: PUBLIC 编辑 用户: PUBLIC 1. 一般信息返回顶部 1.1, 1.2, 2 ...