2-09-组件

一、什么是组件化开发

组件化开发指的是:根据封装的思想,把页面上可重用的UI结构封装为组件,从而方便项目的开发和维护。

二、vue中的组件化开发

vue是一个支持组件化开发的前端框架

vue中规定:组件的后缀名是.vue,之前接触到的App.vue文件本质上就是一个vue组件。

三、 组件的三个组成部分

每个.vue组件都由3部分构成,分别是:

  • template->组件的模版结构

  • script->组件的Javascript行为

  • style->组件的样式

案例:

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<template>

<div class="text-box">

<h3>这是用户自定义的Test.vue --- {{ username }}</h3>

</div>

</template>

<script>

// 默认导出,这是固定写法

export default {

data() {

return {

username: 'zs';

}

}

}

</script>

<style>

.text-box {

background-color: pink;

}

</style>

注意:.vue组件中的data不能像之前一样,指向一个对象,必须是一个函数。

**3.1 组件的方法**

<template>

<div class="text-box">

<h3>这是用户自定义的Test.vue --- {{ username }}</h3>

<button @click="changename">变更名称</button>

</div>

</template>

<script>

export default {

data() {

return {

username: 'zs'

}

},

methods: {

changename() {

this.username = 'ab';

}

},

watch: {},

computed: {},

filters: {}

}

</script>

<style>

.text-box {

background-color: pink;

}

</style>

3.2 开启Less

八、利用/deep/修改第三方组件样式

当我们引入Vant.js中的复用组件时,如果我们想修改该复用组件,就可以利用/deep/

在template中:

主要按钮

在css中:

1
2
3
/deep/ van-button {

}

九、.vue是如何被识别的?

在package.json中有个叫”vue-template-compiler”的组件,会将.vue转化为js代码。

在主页面中,我们能看到这段注入代码:

其中的app.js就包含了所有.vue组件。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!