Vue 中实现虚拟列表有很多种方法,其中一种是使用计算属性返回虚拟数据。
例如,在组件的 data 中定义:
data() {
return {
items: [...],
start: 0,
end: 20
};
},
computed: {
virtualItems() {
return this.items.slice(this.start, this.end);
}
}
然后,在模板中使用 virtualItems:
<ul>
<li v-for="item in virtualItems" :key="item.id">
{{ item.text }}
</li>
</ul>
可以使用观察者监听滚动事件,并通过计算 start 和 end 来控制虚拟数据的呈现。
还有一些插件,如 vue-virtual-scroll-list,可以更简单地实现虚拟列表。