1

我想扩展 Vue-Material 组件,以便我可以在我的项目中抽象它们;例如,有一个名为“my-icon”的图标组件,它会简单地继承/扩展 md-icon 组件。所以在我的项目中我可以使用它,它只会使用 md-icon。

我尝试使用以下方法创建 MyIcon/index.js:

import VueMaterial from 'vue-material';

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

并得到错误:

[Vue 警告]:无法挂载组件:未定义模板或渲染函数。

我真的很希望能够扩展这些组件,而不必为每个组件定义模板,因为那样会重复很多工作。在一个完美的世界里,我可以使用现有的 vue-material 组件,将它们重命名为我想要的,并有能力通过覆盖模板来扩展功能。这样,我可以在大部分工作中使用 vue-material 组件,并在需要时添加/替换,而无需在上游修改我的工作。

有人对此有任何建议/想法吗?

4

1 回答 1

1

您通过实际重用组件来扩展组件。

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

export default{
 components:{
  mdIcon
 }
}
于 2017-02-06T18:54:05.613 回答