# 组件 组件是带有一个名字的可复用的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: '' }) ``` > 声明组件中,组件内部的data必须是一个函数 > > 因此 ,每个组件实例都是彼此独立的 使用它: js部分: ``` var app = new Vue({ el: '#app', data: { selected: [] }, component:{ counter } }) ``` template (html)部分 ```
``` > 组件可以使用任意次数 > > 这个例子中,id=app的部分叫做 父组件 counter指代的部分叫做 子组件