我最近开始尝试构建一个<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 生命周期中,这很重要。