2017-02-06 38 views
0

我想擴展Vue-Material組件,以便我可以在我的項目中抽象它們;例如有一個名爲「我的圖標」的圖標組件,它只會繼承/擴展md圖標組件。所以在我的項目中,我可以使用它,它會簡單地使用md-icon。將vue-material組件擴展到我自己的組件中

我試圖創建MyIcon/index.js:

import VueMaterial from 'vue-material'; 

export default function install(Vue) {  
    Vue.component('my-icon', Vue.extend(VueMaterial.mdIcon)); 
} 

,並得到了錯誤:

[Vue warn]: Failed to mount component: template or render function not defined.

我真的很希望能夠在不必定義這些組件延伸每一個模板,因爲這將重複很多努力。在完美的世界中,我可以使用現有的vue素材組件,將它們重命名爲我想要的,並且有能力通過覆蓋模板來擴展功能。這樣,我可以在大多數工作中使用vue-material組件,並在需要時添加/替換,而無需修改上游工作。

有沒有人對此有任何建議/想法?

回答

1

您通過實際重新使用它們來擴展組件。

<template> 
<div class="myCustomIcon"> 
    <md-icon></md-icon> 
</div> 
</template> 
import VueMaterial from 'vue-material'; 

export default{ 
components:{ 
    mdIcon 
} 
} 
+0

我很擔心這一點。我現在已經有了這個功能,但希望能夠「模仿」模板的功能而無需自己編寫它。編寫我自己的模板的結果是,現在我需要支持通過所有屬性,數據等,當我真正想要的就是它目前的功能。我希望這是有道理的,謝謝你的回答。 – Matt