# 局部注册

局部注册与全局注册对应,即,定义一个组件之后,该组件只能在一个 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 实例中使用