首頁 > web前端 > js教程 > 主體

Vue Mixin功能使用案例詳解

php中世界最好的语言
發布: 2018-06-08 10:47:43
原創
1712 人瀏覽過

這次帶給大家Vue Mixin功能案例詳解,Vue Mixin功能使用案的注意事項有哪些,以下就是實戰案例,一起來看一下。

vuejs 官方組織裡有一個 'vue-class-component' 以及連帶推薦的 'vue-property-decorator',都沒有相應實作。翻了下前者的 issue,有一條掛了好些時間的待做 feature 是 mixin 的支持。

也不是什麼複雜的事,自己寫一個吧。

後註:vue-class-component 6.2.0 開始提供 mixins 方法,和本文的實作思路相似。

實作

宣告 VClass 可作為 T 的類別建構器。同時透過Pick 拿到Vue 的建構器上的靜態方法(extend/mixin 之類),如此才能夠支援下面這段中的真正實現,透過呼叫一個Vue 的子類別建構器上的extend 方法產生新的子類別構造器。

至於 ABC 這個純粹是類型宣告的體力活了。

使用

實際使用時:

#注意到直接extends Vue 的DisposableMixin 並不是一個有效的Vue 元件,也不可以直接在mixins 選項會使用,如果要被以Vue.extend 方式擴充的自訂元件使用,請記住使用Component 包裝一層。

Abstract class

在業務系統中會使用到的Mixin 其實多數情況下會更複雜,提供一些基礎功能,但有些部分需要留給繼承者自行實現,這個時候使用抽象類別就很適合。

但抽象類別是無法被實例化的,並不滿足{ new(): T } 這個要求,因此只能被繼承,而不能被混入,由於同樣的原因,抽象類別也無法被'vue-class-component' 的Component 函式裝飾。

這時候只好將實作了的功能寫入 Mixin 中,待實現的功能放到介面裡,讓具體類別來實現。

這種欺騙編譯器的方式其實還是比較拙劣的,如果一個具體類別繼承了 PlayerMixin,卻沒有顯示聲明實現 IPlayerImplementation ,編譯器無法告訴你這個錯誤。我們只能在程式碼裡小心翼翼地寫上註釋,期待使用者不要忘了這件事。

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

progressbar元件實戰案例解析

#通訊錄首字母擷取功能實作

以上是Vue Mixin功能使用案例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!