跳至主要内容

[Vue] 進階API-元件的Mixins / Extends

TL;DR

參考資料

相關連結


Mixins

語法

<div id="app">
<div class="p-5">
<h2>單一混合</h2>
<card></card>
</div>
</div>
混合的特點
  • 可以重複混合
  • 生命週期可以重複觸發
  • 同名的變數、方法則會被後者覆蓋

混合多個元件

<div id="app">
<div class="p-5">
<h2>單一混合、多個混合</h2>
<card class="my-2"></card>
<card2 class="my-2"></card2>
<card3 class="my-2"></card3>
</div>
</div>
混合多個元件的特性

生命週期

  • mixins生命週期的執行順序:依照mixins傳入的陣列順序依序執行
  • 元件本身的生命週期與mixins的生命週期順序:先執行mixin的生命週期,再執行元件的生命週期

資料內容

  • 複數mixins資料的覆蓋性:(如果狀態名稱相同則)後面的mixins覆蓋前面的mixins
  • 元件與mixins資料的覆蓋性:(如果狀態名稱相同則)元件覆蓋mixins的資料內容

Extends

語法

<div id="app">
<div class="p-5">
<h2>單一擴展</h2>
<card></card>
</div>
</div>
info
  • 擴展直接帶入陣列,故只能擴展一個。
  • 生命週期與mixins相同,可以觸發

比較Mixins & Extends

<div id="app">
<div class="p-5">
<h3>權重</h3>
<card2></card2>
</div>
</div>

extendsmixins元件
可否重複混入不可N/A
混入形式陣列單一物件N/A
生命週期執行優先權最早執行次之最晚執行
資料覆蓋優先權優先權最低優先權次之優先權最高

資料覆蓋優先權:需要具有相同名稱的前提時,高優先權覆蓋低優先權