這篇文章帶大家了解一下vue中封裝元件利器:$attrs、$listeners屬性,看看它們的用法,希望對大家有幫助!
多層級元件巢狀需要傳遞資料時,通常使用的方法是透過vuex
。但只是傳遞數據,不做中間處理,使用vuex
處理,未免有些大材小用了。所以就有了$attrs
、$listeners
兩個屬性 ,通常是搭配 inheritAttrs 一起使用。 【相關推薦:vuejs影片教學】
prop
接收會自動設定到子元件內部的最外層標籤上,如果是class
和style
的話,會合併最外層標籤的class
和style
。prop
屬性,可以使用inheritAttrs
停用繼承,然後透過v-bind="$ attrs"
把外部傳入的非prop
屬性設定在希望的標籤上,但是這不會改變class
和style
#。inheritAttrs 屬性
#2.4.0 新增
官網連結https://cn .vuejs.org/v2/api/#inheritAttrs
類型:boolean
true
#詳細說明
預設情況下父作用域的不被認定為props 的attribute 綁定(attribute bindings) 將會「回退」且作為普通的HTML attribute 應用在子元件的根元素上。當撰寫包裹一個目標元素或另一個元件的元件時,這可能不會總是符合預期行為。透過設定
inheritAttrs到
false
$attrs可以讓這些 attribute 生效,且可以透過v-bind顯性的綁定到非根元素上。
注意:這個選項
不影響
style綁定。
範例:#父元件
v-bind="$attrs"這個屬性,他會自動接受並綁定
inheritAttrs: false
// 父组件
// 子组件
以上是認識vue中的$attrs和$listeners屬性,聊聊用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!