在Vue中,我們可以通過Vue.extend
來創建組件構造器,并將其擴展為一個獨立的可復用的組件。
下面是一個簡單的例子,我們通過Vue.extend
來擴展出一個新的組件構造器,然后將其注冊為全局組件:
const MyComponent = Vue.extend({
template: '<div>Hello World!</div>'
})
Vue.component('my-component', MyComponent)
這樣,我們就可以在任意地方使用<my-component>
標簽來引用這個全局組件。
在上面這個例子中,我們在MyComponent
中定義了一個簡單的模板,并通過Vue.component
方法將其注冊為全局組件。
除了模板外,我們還可以在Vue.extend
中定義一些其它的組件選項(如props
、methods
等),以便在創建組件實例時進行繼承:
const MyComponent = Vue.extend({
props: ['msg'],
methods: {
greet () {
alert(this.msg)
}
},
template: '<div @click="greet">{{ msg }}</div>'
})
Vue.component('my-component', MyComponent)
在上面這個例子中,我們擴展了一個具有props
和methods
選項的組件構造器MyComponent
,并在模板中通過{{ msg }}
來引用props
中的數據,同時在@click
事件中調用了greet
方法。
當我們使用這個組件時,可以通過<my-component msg="Hello">
來傳遞msg
這個prop
。