van-list 加载完后回到顶部
时间: 2023-09-23 17:13:05 浏览: 191
可以通过 `van-list` 组件的 `scroll-to-top` 方法来实现加载完数据后回到顶部。具体做法是,在 `load` 事件中监听数据加载完成的回调函数,然后在回调函数中调用 `scroll-to-top` 方法。
示例代码如下:
```html
<van-list v-model="list" :finished="finished" @load="onLoad">
<template #item="{ item }">
<van-cell :title="item.title" :label="item.label" />
</template>
</van-list>
```
```javascript
export default {
data() {
return {
list: [],
finished: false
}
},
methods: {
onLoad() {
// 模拟异步加载数据
setTimeout(() => {
this.list.push({
title: `Item ${this.list.length + 1}`,
label: `Label ${this.list.length + 1}`
});
// 数据全部加载完成后,设置 finished 属性为 true
if (this.list.length >= 20) {
this.finished = true;
}
// 加载完数据后回到顶部
this.$refs.list.scrollToTop();
}, 500);
}
}
}
```
在 `onLoad` 方法中,先模拟异步加载数据的过程,然后在数据全部加载完成后,设置 `finished` 属性为 `true`,表示数据已经全部加载完成。最后调用 `scrollToTop` 方法回到列表顶部,需要通过 `$refs` 来获取 `van-list` 组件的实例。
注意,如果是在 `v-for` 中使用 `van-list` 组件,则需要在 `van-list` 标签上添加 `ref` 属性来获取组件实例,示例代码如下:
```html
<van-list v-model="list" :finished="finished" @load="onLoad" ref="list">
<template #item="{ item }">
<van-cell :title="item.title" :label="item.label" />
</template>
</van-list>
```
阅读全文