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
的类型声明文件
- 存放了
- 重点
packages
types
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.vue
1
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 许可协议。转载请注明来自 吕小布の博客!
评论