# 局部注册
局部注册与全局注册对应,即,定义一个组件之后,该组件只能在一个 Vue 管理的元素中使用。
其它 Vue 管理的元素要使用的话,只能自己『再写一遍』。
局部组件就是将原来写在全局组件中的关于组件的定义的相关代码『挪到』创建 Vue 实例的代码中。形如:
var app = new Vue({
el: "#app",
components: { // 注意,这里的属性名中有个 s
'counter': { ... }, // 组件的定义
... // 其它组件的定义
}
})
为了避免『嵌入』组件的定义后引起的 Vue 代码的臃肿,通常会将组件定义的代码以变量的形式写在 new Vue() 的外面。
const counter = {
template: '<button v-on:click="count++">你点了我 {{ count }} 次,我记住了.</button>',
data() {
return {
count: 0
}
}
};
然后在 Vue 中使用它:
var app = new Vue({
el: "#app",
components: { // 注意,这里的属性名中有个 s
counter: counter,
// ... 其它组件定义
}
})
components 就是当前 vue 对象子组件集合。
其 key 就是子组件名称
其值就是组件对象的属性
效果与刚才的全局注册是类似的,不同的是,这个 counter 组件只能在当前的 Vue 实例中使用