【发布时间】:2021-12-03 22:28:31
【问题描述】:
我需要在 vue 上制作一个类似表格/表格的组件。它显示表格数据。通常它有 5-30 行和最多 30 列。但是每个单元格中的元素渲染起来非常繁重。每个都有几个事件侦听器,例如 @click 和 @hover,以及渲染更多组件的调用方法。他们也有很多动态。到目前为止它工作得很好,但是现在需要使用这个精确的组件来处理更多的行,大约 200 行。显然,最好的方法是实现分页,因为渲染了很多这些单元格会大大降低浏览器的速度。但要求明确指出,UI 不能有任何箭头在表格页面之间导航。浏览表格的唯一可接受的方法是使用滚动(或无限滚动),就像它是一页一样。所以现在我尝试在滚动时实现创建和销毁元素,当表格的某些部分(如每 30 行)出现时。
我的问题是,将什么渲染为表格组件会更快? 我应该像这样使用表格组件吗?
<table>
<thead>
<tr>
<th v-for="date in dates">
<span>Some dynamic components</span>
</th>
</tr>
</thead>
<tbody>
<tr v-for="name in names">
<th v-for="date in dates">
<span>Some dynamic components</span>
</th>
</tr>
</tbody>
</table>
还是这个?
<div class="TableLikeComponent">
<div class="TableHeaderLikeComp">
<div v-for="name in names" class="RowLikeComponent">
<span>Some dynamic components</span>
</div>
</div>
<div class="TableBodyLikeComp">
<div v-for="name in names" class="RowLikeComponent">
<div v-for="date in dates" class="ColumnLikeComponent">
<span>Some dynamic components</span>
</div>
</div>
</div>
</div>
或者也许有更好的解决方案? 将不胜感激任何提示。
【问题讨论】:
标签: html vue.js browser infinite-scroll