vue中組件非prop接收數據時的特性自定義綁定

非 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")


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章