import{c as t,f as n,t as e,A as d,o as r}from"./vendor.80bf15c7.js";const o={class:"markdown-body"},s=n("h1",null,"infiniteloading组件",-1),a=n("h3",null,"介绍",-1),i=n("p",null,"列表滚动到底部自动加载更多数据。",-1),l=n("h3",null,"安装",-1),u=n("pre",null,[n("code",{class:"language-javascript"}," import { createApp } from 'vue';\n import { InfiniteLoading } from '@nutui/nutui';\n\n const app = createApp();\n app.use(InfiniteLoading);\n")],-1),c=n("h2",null,"代码演示",-1),h=n("h3",null,"基础用法",-1),f={class:"language-html"},p=n("pre",null,[n("code",{class:"language-javascript"},"setup() {\n const hasMore = ref(true);\n const data = reactive({\n defultList: []\n });\n const loadMore = done => { \n setTimeout(() => {\n const curLen = data.defultList.length;\n for (let i = curLen; i < curLen + 10; i++) {\n data.defultList.push(`${i} -- 塑像本来就在石头里,我只是把不要的部分去掉`);\n }\n if (data.defultList.length > 30) hasMore.value = false;\n done()\n }, 500);\n };\n const init = () => {\n for (let i = 0; i < 10; i++) {\n data.defultList.push(`${i} -- 塑像本来就在石头里,我只是把不要的部分去掉`);\n }\n }\n onMounted(() => {\n init()\n });\n return { loadMore, hasMore, ...toRefs(data) };\n}\n")],-1),m=n("h3",null,"下拉刷新",-1),g={class:"language-html"},L=n("pre",null,[n("code",{class:"language-javascript"},"setup() {\n const refreshHasMore = ref(true);\n const data = reactive({\n refreshList: []\n });\n const refreshLoadMore = done => {\n setTimeout(() => {\n const curLen = data.refreshList.length;\n for (let i = curLen; i < curLen + 10; i++) {\n data.refreshList.push(\n `${i} -- 塑像本来就在石头里,我只是把不要的部分去掉`\n );\n }\n if (data.refreshList.length > 30) refreshHasMore.value = false;\n done()\n }, 500);\n };\n\n const refresh = (done) => {\n setTimeout(()=>{\n Toast.success('刷新成功');\n done()\n },1000)\n }\n const init = () => {\n for (let i = 0; i < 10; i++) {\n data.refreshList.push(`${i} -- 塑像本来就在石头里,我只是把不要的部分去掉`);\n }\n }\n onMounted(() => {\n init()\n });\n return { refreshLoadMore, refreshHasMore, refresh, ...toRefs(data) };\n}\n")],-1),M=n("h3",null,"自定义加载文案",-1),v={class:"language-html"},b=d('
setup() {\n    const customHasMore = ref(true);\n    const data = reactive({\n      customList: ['']\n    });\n    const customLoadMore = done => {\n      setTimeout(() => {\n        const curLen = data.customList.length;\n        for (let i = curLen; i < curLen + 10; i++) {\n          data.customList.push(`${i} -- 塑像本来就在石头里,我只是把不要的部分去掉`);\n        }\n        if (data.customList.length > 30) customHasMore.value = false;\n        done()\n      }, 500);\n    };\n    const init = () => {\n      for (let i = 0; i < 10; i++) {\n        data.customList.push(`${i} -- 塑像本来就在石头里,我只是把不要的部分去掉`);\n      }\n    }\n    onMounted(() => {\n      init()\n    });\n    return { customHasMore, customLoadMore,...toRefs(data) };\n}\n

API

Props

参数说明类型默认值
hasMore是否还有更多数据Booleantrue
threshold距离底部多远加载Number200
useWindow将滚动侦听器添加到 window 否则侦听组件的父节点Booleantrue
useCapture是否使用捕获模式 true 捕获 false 冒泡Booleanfalse
containerId在 useWindow 属性为 false 的时候,自定义设置节点IDString‘’
unloadMoreTxt“没有更多数”据展示文案String‘哎呀,这里是底部了啦’
isOpenRefresh是否开启下拉刷新Booleanfalse

Slot

name说明
loading自定义“加载中”的展示形式
unloadMore自定义“没有更多数据”的展示形式
refreshLoading自定义下拉刷新中“加载中”的展示形式

Events

事件名说明回调参数
loadMore继续加载的回调函数done 函数,用于关闭加载中状态
scrollChange实时监听滚动高度滚动高度
refresh下拉刷新事件回调done 函数,用于关闭加载中状态
',8),y={expose:[],setup:d=>(d,y)=>(r(),t("div",o,[s,a,i,l,u,c,h,n("pre",null,[n("code",f,'\n",1)]),p,m,n("pre",null,[n("code",g,'\n",1)]),L,M,n("pre",null,[n("code",v,'\n',1)]),b]))};export default y;