组件设计步骤
# 分析组件
- 建立组件的模板,先把架子搭起来,命名约定,组件样式,考虑好组件的基本逻辑。
- 组件的数据输入,即定好 props 里面的数据类型。
- 组件的数据输出,即对外暴露出来的方法和数据。
例如:
从大到小
<template>
<el-container class="table_container">
<slot name="header">
//
</slot>
<el-main class="table_main">
<el-table
v-loading="loading"
element-loading-text="拼命加载中"
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(255, 255, 255, 0.7)"
:height="height"
:data="data"
style="width: 100%"
>
<slot name="columnFirst">
<!-- <el-table-column type="expand">
<template slot-scope="props">
//
</template>
</el-table-column>-->
</slot>
<slot name="columns">
<template>
<el-table-column
v-for="(col, idx) in columns"
:key="idx"
:width="col.width"
:type="col.type"
:prop="col.prop"
:label="col.label"
:formatter="col.formatter"
>
<!-- <template slot-scope="scope">
<component :is="item.temp.tag" :src="scope.row[item.prop]" />
</template>-->
</el-table-column>
</template>
</slot>
<slot name="columnOther" />
<slot name="columnHandler">
<el-table-column width="100" label="操作">
<template slot-scope="scope">
//
</el-table-column>
</slot>
</el-table>
</el-main>
<el-footer class="table_pagination">
<el-pagination
:current-page="currentPage"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
</el-footer>
</el-container>
</template>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
上次更新: 2023/09/17, 20:06:58