vant-List 列表-加载刷新-下拉刷新

dom 代码

javascript 复制代码
<van-pull-refresh v-model="refreshing" @refresh="onRefresh">
            <van-list
            v-model="loading"
            :finished="finished"
            finished-text="没有更多了"
            @load="onLoad"
            >
            <Messages :item-list="itemlist"></Messages>
            </van-list>
        </van-pull-refresh>

js 代码

javascript 复制代码
<script>
export default {
    data() {
        return {
            itemlist:[],
            page_index:1,
            loading:false, // 是否加载
            finished:false, // 是否加载完成
            refreshing:false, // 是否要下拉刷新
        }
    },
    components:{
        Messages
    },
    created() {
        this.getData()
    },
    methods:{
        /*下拉加载,定时为了体现加载间隔*/ 
        onLoad() {
            setTimeout(()=>{
                if(this.refreshing) this.refreshing = false
                this.getData()
            },500)
        },
        /*重新加载*/
        onRefresh() {
            this.finished = false;
            this.loading = true;
            this.page_index = 1
            this.onLoad();
        },
        /*获取数据*/ 
        async getData(){
            const data={
                page_index:this.page_index,
                page_size: 10
            }
            const res = await getMesageData(data)
            this.loading=false
            if(res.success){
                this.itemlist=[...this.itemlist,...res.data]
                this.page_index++
            }
            // 是否加载完成(注意:对比数据建议提供总页数
            this.finished=(res.page_index==res.total_pages)?true:false
        }
    },
}
</script>

按文档进行,基本无误

参考:vant

相关推荐
落魄江湖行23 分钟前
进阶篇二 Nuxt4 渲染模式:SSR/SSG/CSR 怎么选
前端·vue.js·typescript·nuxt4
Ruihong1 小时前
你的 Vue 3 TS 类型声明,VuReact 会处理成什么样的 React?
vue.js·react.js·面试
踩着两条虫1 小时前
VTJ核心引擎开源项目概览
前端·vue.js·低代码
1314lay_10071 小时前
Vue+C#根据配置文件实现动态构建查询条件和动态表格
javascript·vue.js·elementui·c#
SuperEugene1 小时前
Vue3 前端配置驱动避坑:配置冗余、渲染性能、扩展性问题解决|配置驱动开发实战篇
前端·javascript·vue.js·驱动开发·前端框架
小李子呢02112 小时前
前端八股---脚手架工具Vue CLI(Webpack) vs Vite
前端·vue.js·webpack
Leisureconfused2 小时前
【记录】Node版本兼容性问题及解决
前端·vue.js·npm·node.js
小贵子的博客2 小时前
Ant Design Vue中 table组件设置分组表头和固定总结栏
vue.js·anti-design-vue
梵得儿SHI2 小时前
Vue 3 工程化实践:多页面路由配置 + Pinia 状态管理完全指南
前端·javascript·vue.js·vuerouter4·pinia状态管理的·模块化store设计·路由与状态管理
小李子呢02112 小时前
为什么会有react和vue这些框架的出现
前端·vue.js·react.js