0

我最近开始尝试构建一个<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>

这个想法是,每次使用 a 时,都会提供<Table>一个自定义。<Column>这将很有用,因为每个表都有不同的数据,因此在每种情况下需要对列进行不同的处理。但是,我很难找到一种方法来将一个组件从本质上传递给其他组件。这在 Svelte 中可能吗?

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

4

1 回答 1

2

目前还没有一种简洁的方法来做到这一点(这是可能的,但您必须在 and 中执行安装/卸载逻辑oncreateondestroy并在其中添加观察者oncreate以使所有内容保持最新),但我们可能会非常执行很快——关注#640获取更新。

于 2017-07-13T14:25:06.193 回答