局部註冊的組件,只能在當前Vue實例中使用,並且在其子組件中不可用。
在 components 選項中定義局部組件。每個組件就是壹個小型的Vue實例,它裏面除了不能設置el選項,其他選項它都有。
組件名稱: 自定義,可以使用駝峰命名方式或者短橫線的命名方式,但是需要註意的是如果應用到DOM中,就只能用短橫線命名的方式,否則就會報錯。註意組件的名稱不要跟原生html元素重名。
template選項: 定義組件的模板。模板中必須包含壹個根標簽。
props選項: 定義組件標簽上的屬性。駝峰命名法的 prop 名(postTitle)需要使用其等價的短橫線分隔命名法(post-title)命名。註意:props是只讀的,不能修改( 解決辦法: 在data中對props接收到的數據進行中轉)。
data: 定義組件的數據。註意:Vue實例的data選項可以是壹個對象,也可以是壹個方法,由該方法返回壹個對象。 但是在組件中,data選項必須是壹個方法,由該方法返回壹個對象。因為組件可能會使用很多次,如果data選項是對象的話,會導致多個組件使用了同壹份數據。
全局註冊的組件可以用在任何新創建的 Vue 根實例 (new Vue) 的模板中。
使用 Vue.component 來創建全局組件。Vue.component的第壹個參數就是組件名。
$emit()用於觸發自定義事件。註意:事件名稱中不能采用大寫字母。
效果:
效果:
slot 用於在組件的內部定義插槽,組件標簽之間的所有html內容,會在插槽所在位置呈現。
效果: