| 1 |
- import{e as s,o as a,G as n}from"./vendor.9cc7b6f2.js";const t={class:"markdown-body"},l=[n('<h1>Infiniteloading 滚动加载</h1><h3>介绍</h3><p>列表滚动到底部自动加载更多数据。</p><h3>安装</h3><pre><code class="language-javascript"> <span class="hljs-keyword">import</span> { createApp } <span class="hljs-keyword">from</span> <span class="hljs-string">'vue'</span>;\n <span class="hljs-keyword">import</span> { InfiniteLoading } <span class="hljs-keyword">from</span> <span class="hljs-string">'@nutui/nutui'</span>;\n\n <span class="hljs-keyword">const</span> app = createApp();\n app.use(InfiniteLoading);\n</code></pre><h2>代码演示</h2><h3>基础用法</h3><pre><code class="language-html"><span class="hljs-tag"><<span class="hljs-name">ul</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"infiniteUl"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"scroll"</span>></span>\n <span class="hljs-tag"><<span class="hljs-name">nut-infiniteloading</span>\n <span class="hljs-attr">containerId</span> = <span class="hljs-string">'scroll'</span>\n <span class="hljs-attr">:use-window</span>=<span class="hljs-string">'false'</span>\n <span class="hljs-attr">:has-more</span>=<span class="hljs-string">"hasMore"</span>\n @<span class="hljs-attr">load-more</span>=<span class="hljs-string">"loadMore"</span>\n ></span>\n <span class="hljs-tag"><<span class="hljs-name">li</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"infiniteLi"</span> <span class="hljs-attr">v-for</span>=<span class="hljs-string">"(item, index) in defultList"</span> <span class="hljs-attr">:key</span>=<span class="hljs-string">"index"</span>></span>{{item}}<span class="hljs-tag"></<span class="hljs-name">li</span>></span>\n <span class="hljs-tag"></<span class="hljs-name">nut-infiniteloading</span>></span>\n<span class="hljs-tag"></<span class="hljs-name">ul</span>></span>\n</code></pre><pre><code class="language-javascript"><span class="hljs-function"><span class="hljs-title">setup</span>(<span class="hljs-params"></span>)</span> {\n <span class="hljs-keyword">const</span> hasMore = ref(<span class="hljs-literal">true</span>);\n <span class="hljs-keyword">const</span> data = reactive({\n <span class="hljs-attr">defultList</span>: []\n });\n <span class="hljs-keyword">const</span> loadMore = <span class="hljs-function"><span class="hljs-params">done</span> =></span> { \n <span class="hljs-built_in">setTimeout</span>(<span class="hljs-function">() =></span> {\n <span class="hljs-keyword">const</span> curLen = data.defultList.length;\n <span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> i = curLen; i < curLen + <span class="hljs-number">10</span>; i++) {\n data.defultList.push(<span class="hljs-string">`<span class="hljs-subst">${i}</span>`</span>);\n }\n <span class="hljs-keyword">if</span> (data.defultList.length > <span class="hljs-number">30</span>) hasMore.value = <span class="hljs-literal">false</span>;\n done()\n }, <span class="hljs-number">500</span>);\n };\n <span class="hljs-keyword">const</span> init = <span class="hljs-function">() =></span> {\n <span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> i = <span class="hljs-number">0</span>; i < <span class="hljs-number">10</span>; i++) {\n data.defultList.push(<span class="hljs-string">`<span class="hljs-subst">${i}</span>`</span>);\n }\n }\n onMounted(<span class="hljs-function">() =></span> {\n init()\n });\n <span class="hljs-keyword">return</span> { loadMore, hasMore, ...toRefs(data) };\n}\n</code></pre><h3>下拉刷新</h3><pre><code class="language-html"><span class="hljs-tag"><<span class="hljs-name">ul</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"infiniteUl"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"refreshScroll"</span>></span>\n <span class="hljs-tag"><<span class="hljs-name">nut-infiniteloading</span>\n <span class="hljs-attr">pull-icon</span>=<span class="hljs-string">"JD"</span>\n <span class="hljs-attr">container-id</span>=<span class="hljs-string">"refreshScroll"</span>\n <span class="hljs-attr">:use-window</span>=<span class="hljs-string">"false"</span>\n <span class="hljs-attr">:is-open-refresh</span>=<span class="hljs-string">"true"</span>\n <span class="hljs-attr">:has-more</span>=<span class="hljs-string">"refreshHasMore"</span>\n @<span class="hljs-attr">load-more</span>=<span class="hljs-string">"refreshLoadMore"</span>\n @<span class="hljs-attr">refresh</span>=<span class="hljs-string">"refresh"</span>\n ></span>\n <span class="hljs-tag"><<span class="hljs-name">li</span>\n <span class="hljs-attr">class</span>=<span class="hljs-string">"infiniteLi"</span>\n <span class="hljs-attr">v-for</span>=<span class="hljs-string">"(item, index) in refreshList"</span>\n <span class="hljs-attr">:key</span>=<span class="hljs-string">"index"</span>\n ></span>{{ item }}</li\n >\n <span class="hljs-tag"></<span class="hljs-name">nut-infiniteloading</span>></span>\n<span class="hljs-tag"></<span class="hljs-name">ul</span>></span>\n</code></pre><pre><code class="language-javascript"><span class="hljs-function"><span class="hljs-title">setup</span>(<span class="hljs-params"></span>)</span> {\n <span class="hljs-keyword">const</span> refreshHasMore = ref(<span class="hljs-literal">true</span>);\n <span class="hljs-keyword">const</span> data = reactive({\n <span class="hljs-attr">refreshList</span>: []\n });\n <span class="hljs-keyword">const</span> refreshLoadMore = <span class="hljs-function"><span class="hljs-params">done</span> =></span> {\n <span class="hljs-built_in">setTimeout</span>(<span class="hljs-function">() =></span> {\n <span class="hljs-keyword">const</span> curLen = data.refreshList.length;\n <span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> i = curLen; i < curLen + <span class="hljs-number">10</span>; i++) {\n data.refreshList.push(\n <span class="hljs-string">`<span class="hljs-subst">${i}</span>`</span>\n );\n }\n <span class="hljs-keyword">if</span> (data.refreshList.length > <span class="hljs-number">30</span>) refreshHasMore.value = <span class="hljs-literal">false</span>;\n done()\n }, <span class="hljs-number">500</span>);\n };\n\n <span class="hljs-keyword">const</span> refresh = <span class="hljs-function">(<span class="hljs-params">done</span>) =></span> {\n <span class="hljs-built_in">setTimeout</span>(<span class="hljs-function">()=></span>{\n Toast.success(<span class="hljs-string">'刷新成功'</span>);\n done()\n },<span class="hljs-number">1000</span>)\n }\n <span class="hljs-keyword">const</span> init = <span class="hljs-function">() =></span> {\n <span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> i = <span class="hljs-number">0</span>; i < <span class="hljs-number">10</span>; i++) {\n data.refreshList.push(<span class="hljs-string">`<span class="hljs-subst">${i}</span>`</span>);\n }\n }\n onMounted(<span class="hljs-function">() =></span> {\n init()\n });\n <span class="hljs-keyword">return</span> { refreshLoadMore, refreshHasMore, refresh, ...toRefs(data) };\n}\n</code></pre><h3>自定义加载文案</h3><pre><code class="language-html"><span class="hljs-tag"><<span class="hljs-name">ul</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"infiniteUl"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"customScroll"</span>></span>\n <span class="hljs-tag"><<span class="hljs-name">nut-infiniteloading</span>\n <span class="hljs-attr">container-id</span> = <span class="hljs-string">'customScroll'</span>\n <span class="hljs-attr">:use-window</span>=<span class="hljs-string">'false'</span>\n <span class="hljs-attr">:has-more</span>=<span class="hljs-string">"customHasMore"</span>\n @<span class="hljs-attr">load-more</span>=<span class="hljs-string">"customLoadMore"</span>\n ></span>\n <span class="hljs-tag"><<span class="hljs-name">li</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"infiniteLi"</span> <span class="hljs-attr">v-for</span>=<span class="hljs-string">"(item, index) in customList"</span> <span class="hljs-attr">:key</span>=<span class="hljs-string">"index"</span>></span>{{item}}<span class="hljs-tag"></<span class="hljs-name">li</span>></span>\n <span class="hljs-tag"><<span class="hljs-name">template</span> <span class="hljs-attr">v-slot:loading</span>></span>\n <span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"loading"</span>></span>\n <span class="hljs-tag"><<span class="hljs-name">span</span>></span>加载中...<span class="hljs-tag"></<span class="hljs-name">span</span>></span>\n <span class="hljs-tag"></<span class="hljs-name">div</span>></span>\n <span class="hljs-tag"></<span class="hljs-name">template</span>></span>\n <span class="hljs-tag"><<span class="hljs-name">template</span> <span class="hljs-attr">v-slot:unloadMore</span>></span>\n <span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"unload-more"</span>></span>没有数据啦 ~~<span class="hljs-tag"></<span class="hljs-name">div</span>></span>\n <span class="hljs-tag"></<span class="hljs-name">template</span>></span>\n <span class="hljs-tag"></<span class="hljs-name">nut-infiniteloading</span>></span>\n<span class="hljs-tag"></<span class="hljs-name">ul</span>></span>\n</code></pre><pre><code class="language-javascript"><span class="hljs-function"><span class="hljs-title">setup</span>(<span class="hljs-params"></span>)</span> {\n <span class="hljs-keyword">const</span> customHasMore = ref(<span class="hljs-literal">true</span>);\n <span class="hljs-keyword">const</span> data = reactive({\n <span class="hljs-attr">customList</span>: [<span class="hljs-string">''</span>]\n });\n <span class="hljs-keyword">const</span> customLoadMore = <span class="hljs-function"><span class="hljs-params">done</span> =></span> {\n <span class="hljs-built_in">setTimeout</span>(<span class="hljs-function">() =></span> {\n <span class="hljs-keyword">const</span> curLen = data.customList.length;\n <span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> i = curLen; i < curLen + <span class="hljs-number">10</span>; i++) {\n data.customList.push(<span class="hljs-string">`<span class="hljs-subst">${i}</span>`</span>);\n }\n <span class="hljs-keyword">if</span> (data.customList.length > <span class="hljs-number">30</span>) customHasMore.value = <span class="hljs-literal">false</span>;\n done()\n }, <span class="hljs-number">500</span>);\n };\n <span class="hljs-keyword">const</span> init = <span class="hljs-function">() =></span> {\n <span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> i = <span class="hljs-number">0</span>; i < <span class="hljs-number">10</span>; i++) {\n data.customList.push(<span class="hljs-string">`<span class="hljs-subst">${i}</span>`</span>);\n }\n }\n onMounted(<span class="hljs-function">() =></span> {\n init()\n });\n <span class="hljs-keyword">return</span> { customHasMore, customLoadMore,...toRefs(data) };\n}\n</code></pre><h2>API</h2><h3>Props</h3><table><thead><tr><th>参数</th><th>说明</th><th>类型</th><th>默认值</th></tr></thead><tbody><tr><td>has-more</td><td>是否还有更多数据</td><td>Boolean</td><td><code>true</code></td></tr><tr><td>threshold</td><td>距离底部多远加载</td><td>Number</td><td><code>200</code></td></tr><tr><td>use-window</td><td>将滚动侦听器添加到 window 否则侦听组件的父节点</td><td>Boolean</td><td><code>true</code></td></tr><tr><td>use-capture</td><td>是否使用捕获模式 true 捕获 false 冒泡</td><td>Boolean</td><td><code>false</code></td></tr><tr><td>container-id</td><td>在 useWindow 属性为 false 的时候,自定义设置节点ID</td><td>String</td><td><code>''</code></td></tr><tr><td>load-more-txt</td><td>“没有更多数”据展示文案</td><td>String</td><td><code>'哎呀,这里是底部了啦'</code></td></tr><tr><td>is-open-refresh</td><td>是否开启下拉刷新</td><td>Boolean</td><td><code>false</code></td></tr><tr><td>pull-icon</td><td>下拉刷新<a href="#/icon">图标名称</a></td><td>String</td><td><img src="https://img10.360buyimg.com/imagetools/jfs/t1/169863/6/4565/6306/60125948E7e92774e/40b3a0cf42852bcb.png" width="40/"></td></tr><tr><td>pull-txt</td><td>下拉刷新提示文案</td><td>String</td><td><code>松手刷新</code></td></tr><tr><td>load-icon</td><td>上拉加载<a href="#/icon">图标名称</a></td><td>Boolean</td><td><img src="https://img10.360buyimg.com/imagetools/jfs/t1/169863/6/4565/6306/60125948E7e92774e/40b3a0cf42852bcb.png" width="40"></td></tr><tr><td>load-txt</td><td>上拉加载提示文案</td><td>String</td><td><code>加载中...</code></td></tr></tbody></table><h3>Events</h3><table><thead><tr><th>事件名</th><th>说明</th><th>回调参数</th></tr></thead><tbody><tr><td>load-more</td><td>继续加载的回调函数</td><td>done 函数,用于关闭加载中状态</td></tr><tr><td>scroll-change</td><td>实时监听滚动高度</td><td>滚动高度</td></tr><tr><td>refresh</td><td>下拉刷新事件回调</td><td>done 函数,用于关闭加载中状态</td></tr></tbody></table>',20)],p={setup:(n,{expose:p})=>(p({frontmatter:{}}),(n,p)=>(a(),s("div",t,l)))};export{p as default};
|