2017-02-06 8 views
0

Vue-Materialコンポーネントをプロジェクト内で抽象化できるように拡張したいと思います。例えば"my-icon"と呼ばれるアイコンコンポーネントを持っていて、単にmd-iconコンポーネントを継承/拡張します。だから私のプロジェクトで私は使用することができ、それは単に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-materialコンポーネントを取り出し、それらの名前を自分の望むものに変更し、テンプレートをオーバーライドすることで機能を拡張することができます。そうすれば、ほとんどの作業にvue-materialコンポーネントを使用し、アップストリームの作業を変更せずに、必要に応じて追加/置換することができます。

誰もがこの周りの提案/考えを持っていますか?

答えて

1

コンポーネントを実際に再利用して拡張します。

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

export default{ 
components:{ 
    mdIcon 
} 
} 
+0

私はそれが心配でした。私はそれを今のところ持っていますが、自分で書くことなくテンプレートの機能を "通過"することができればと思っていました。私自身のテンプレートを書いた結果、今私が本当に望むのは、現在行っていることですが、すべての属性やデータなどを渡すことをサポートする必要があるということです。私はそれが意味をなさないことを願っており、答えに感謝します。 – Matt

関連する問題