ElementUI源码分析
初始化
新建文件夹ElementUI
npm init -y初始化空的package.json
npm install element-ui -S安装
json
1 | { |
只装了element-ui(以下简称element),node_modules文件夹如下

目录结构

lib- 存放
element打包后的文件,也就是我们使用时实际依赖的文件
- 存放
packages- 存放组件相关的源代码
src- 存放了像指令、混入、工具方法等源代码
types- 存放了
ts的类型声明文件
- 存放了
- 重点
packagestypes
packages文件夹
该目录下的文件夹,都是以我们使用的组件命名的

以card文件夹为例
index.js导出了一个
install方法,内容是全局注册Card组件这也是可以直接通过
Vue.use注册组件的原因
1
2
3
4
5
6
7
8
9import Card from './src/main';
/* istanbul ignore next */
Card.install = function(Vue) {
Vue.component(Card.name, Card);
};
export default Card;src/main.vue1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24<template>
<div class="el-card" :class="shadow ? 'is-' + shadow + '-shadow' : 'is-always-shadow'">
<div class="el-card__header" v-if="$slots.header || header">
<slot name="header">{{ header }}</slot>
</div>
<div class="el-card__body" :style="bodyStyle">
<slot></slot>
</div>
</div>
</template>
<script>
export default {
name: 'ElCard',
props: {
header: {},
bodyStyle: {},
shadow: {
type: String
}
}
};
</script>
有些组件的代码,并不会存放在组件同名文件夹下,比如el-form-item组件,这个组件一般会与el-form组件一起使用,相当于el-form的子孙组件,这种组件的vue文件一般会放在祖先组件的文件夹下

案例分析
el-input可以搭配el-form-item实现表单验证
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 吕小布の博客!
评论



