组件可以通过其他组件传递吗?

时间:2017-07-13 14:07:49

标签: svelte

我最近开始尝试构建一个标准<Table>组件,我可以在整个应用程序中使用它。我们的想法是应用程序中的所有表都可以以可维护的方式共享通用功能。为此,我认为<Table>组件本身由每个组件的组件组成,并且为每个唯一用途提供给每个<Table>组件的组件中的一些组件将是有用的。情况下。

<Table>可能如下所示。

<table>
    <tbody>
        <tr>
            {{#each columns as column}}
                <th>{{column.name}}</th>
            {{/each}}
        </tr>
        {{#each items as item}}
            <Row item="{{item}}" columns="{{columns}}" Column="Column"></Row>
        {{/each}}
    </tbody>
</table>

<Row>可能如下所示。

<tr>
    {{#each columns as column}}
        <Column item="{{item}}" column="{{column}}"></Column>
    {{/each}}
</tr>

<Column>可能如下所示。

<td>{{item[column.key]}}</td>

我们的想法是,每次使用<Table>时,都会提供自定义<Column>。这将很有用,因为每个表都有不同的数据,因此在每种情况下需要对列进行不同的处理。但是,我在制定一种基本上通过其他组件传递组件的方法时遇到了麻烦。这在Svelte有可能吗?

顺便说一句,我注意到something like this似乎最近在GitHub上进行了讨论。虽然我当然知道可以使用new构造函数在组件中实例化组件,但这种方法不会挂钩到Svelte生命周期中,这很重要。

1 个答案:

答案 0 :(得分:2)

目前没有简洁的方法(可能,但您必须在oncreateondestroy中执行装载/卸载逻辑,并在oncreate中添加观察者保持所有内容都是最新的,但这是我们很快就会实现的内容 - 请按#640进行更新。