在 Vue.js 中,有几种方式可以注册组件。以下是主要的两种:
- 全局注册
你可以使用 Vue.component()
方法来全局注册一个组件。全局注册的组件可以在任何 Vue 实例(包括根实例和其子实例)的模板中使用。
Vue.component('my-component', {
// 选项
template: '<div>这是一个全局组件</div>'
})
然后,在你的 Vue 实例或模板中,你可以直接使用 <my-component></my-component>
标签。
2. 局部注册
你也可以在 Vue 实例或组件的选项中,使用 components
选项来局部注册一个组件。这样,注册的组件只能在该 Vue 实例或组件的模板中使用。
new Vue({
el: '#app',
components: {
'my-component': {
// 选项
template: '<div>这是一个局部组件</div>'
}
}
})
或者,如果你使用的是单文件组件(.vue
文件),你可以在 components
选项中注册其他 .vue
组件:
// MyComponent.vue
<template>
<div>这是一个单文件组件</div>
</template>
// App.vue
<template>
<div>
<my-component></my-component>
</div>
</template>
<script>
import MyComponent from './MyComponent.vue'
export default {
components: {
MyComponent
}
}
</script>
注意,在 ES6+ 的模块系统中,你需要使用 import
语句来导入组件,并在 components
选项中通过变量名(默认为文件名,但可以去掉 .vue
后缀)来注册它。
另外,你还可以使用 Vue.mixin()
来创建全局混入,但这与注册组件稍有不同,它会影响每个之后创建的 Vue 实例。通常,你更可能会使用组件来封装可重用的代码块。