使用加载器时扩展 Ractive 组件

Extending Ractive component when using a loader

本文关键字:扩展 Ractive 组件 加载      更新时间:2023-09-26

我一直在尝试使用组件规范中所述的组件加载器。我不确定如何通过组件文件做这样的事情:

var bookmarkableBaseClass = Ractive.extend({
    oninit : function(){
        this.on(commonBookmarkEvents);
    },
    data : {
        badgeDefinitions: globalCommonBadgeDefinitions
    }
});
Ractive.components.singlecard = bookmarkableBaseClass.extend({
    template: "#smallcarditem"
});
Ractive.components.singleline = bookmarkableBaseClass.extend({
    template: "#cardlineitem"
});

换句话说 - 有一个组件扩展另一个具有公共属性的基本组件 - 即公共数据以及公共代理事件处理程序。目前,组件规范仅允许我包含其他组件,但不允许如上所述继承。

尽管已经讨论过,但目前不支持它。我认为最好的选择是这样的:

<div class='singlecard'>
  <!-- template goes here -->
</div>
<script>
  var bookmarkableBaseClass = require('./bookmarkableBaseClass');
  component.exports = {
    base: bookmarkableBaseClass,
    someSubclassMethod: function () { /*...*/ }
  };
</script>

任何现有的组件加载器都可以轻松修改以方便此操作 - 您使用的是哪个?