webveuje/vue/组件.md
2020-12-23 16:51:20 +08:00

83 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 组件
组件是带有一个名字的可复用的vue实例可以在new Vue创建的vue根实例中把定义的组件当做自定义元素来使用
### 组件构成
组件和new Vue接收的选项相同都包括如下部分
- data
- methods
- computed
- watch
- components 组件内可以调用其他组件
> el 是根实例特有的选项组建中不能出现el选项
### 组件定义和使用:
#### 定义一个组件
需要把组件实例赋给一个变量
```
let counter=Vue.component('counter', {
data: function () {
return {
count: 0
}
},
methods:{
add(){
this.count+=1
}
},
template: '<button v-on:click="add">You clicked me {{ count }} times.</button>'
})
```
> 声明组件中组件内部的data必须是一个函数
>
> 因此 ,每个组件实例都是彼此独立的
使用它:
js部分
```
var app = new Vue({
el: '#app',
data: {
selected: []
},
component:{
counter
}
})
```
template (html)部分
```
<div id="app">
<counter></counter>
<counter></counter>
<counter></counter>
<counter></counter>
</div>
```
> 组件可以使用任意次数
>
> 这个例子中id=app的部分叫做 父组件 counter指代的部分叫做 子组件