非 Prop 的特性
一個非 prop 特性是指傳向一個組件,但是該組件並沒有相應 prop 定義的特性。
特性就會自動添加到根元素上
對於絕大多數特性來說,從外部提供給組件的值會替換掉組件內部設置好的值。
所以如果傳入 type="text"
就會替換掉 type="date"
並把它破壞!
class
和 style
特性會稍微智能一些,即兩邊的值會被合併起來,
從而得到最終的值:form-control date-picker-theme-dark
。
inheritAttrs: false可以關閉這個特性!(不會影響 style 和 class 的綁定)
通過$attrs可以讓非prop特性綁定到指定的元素上!(使用方法:在需要綁定的元素上v-bind="$attrs")
注意:如果該元素定義時有該屬性,則$attrs所傳的屬性不會替換或者修改原值。即:
這裏需要注意一點,通過 $attrs 指定給元素的屬性,不會與該元素原有屬性發生合併或替換,而是以原有屬性爲準
$listeners
同 $attrs
類似,可以看做是一個包含了組件上所有事件監聽器(包括自定義事件、不包括.native修飾的事件)的對象。它也支持上述的寫法,適用於將事件安放於組件內指定元素上。(v-on="$listeners")