vue中mixin 感覺很牛逼(父子組件融合成一個新組件)


 vue中提供了一種混合機制--mixins,用來更高效的實現組件內容的復用。最開始我一度認為這個和組件好像沒啥區別。。后來發現錯了。下面我們來看看mixins和普通情況下引入組件有什么區別?

     組件在引用之后相當於在父組件內開辟了一塊單獨的空間,來根據父組件props過來的值進行相應的操作,單本質上兩者還是涇渭分明,相對獨立。

     而mixins則是在引入組件之后,則是將組件內部的內容如data等方法、method等屬性與父組件相應內容進行合並。相當於在引入后,父組件的各種屬性方法都被擴充了。

     單純組件引用:

          父組件 + 子組件 >>> 父組件 + 子組件

     mixins:

          父組件 + 子組件 >>> new父組件 

     值得注意的是,在使用mixins時,父組件和子組件同時擁有着子組件內的各種屬性方法,但這並不意味着他們同時共享、同時處理這些變量,兩者之間除了合並,是不會進行任何通信的。最開始看到mixins的時候,天真的我似乎看到了一種向下的類似vuex的數據共享方案,心情十分激動啊。

 下面給大家介紹下Vue中的mixin

     一,mixin是什么

mixin文件是一個對象,可以包含vue組件的任意成分。是分發Vue組件可復用功能的非常靈活的方式,當mixin被組件使用時,所有minxin里的屬性/方法會與組件里的屬性/方法混合。

二,mixin使用

在Vue組件中可以有mixins屬性,該屬性值類型為數組。將mixin引入,作為mixins數組的元素mixins: [mixin]

組件A應用了mixin,兩者的屬性如methods,components和directives,將被混合為同一個對象,如果methods,components和directives中有同名的屬性,則mixin中的將會被忽略。同名鈎子函數會組成數組並都會被調用,並且mixin的鈎子函數會比組件的鈎子函數先被調用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM