import{o as n,c as a,a as s}from"./app.51e46c58.js";const t='{"title":"Waterfall 瀑布流组件","description":"","frontmatter":{},"headers":[{"level":2,"title":"用法","slug":"用法"},{"level":2,"title":"Waterfall 属性","slug":"waterfall-属性"},{"level":2,"title":"Waterfall 事件","slug":"waterfall-事件"}],"relativePath":"components/waterfall.md","lastUpdated":1721205967753}',p={},o=s('

Waterfall 瀑布流组件

瀑布流组件

Waterfall 组件位于 src/components/Waterfall

TIP

data 数据必须带有高度字段,用于确保计算出正确的位置

用法

<script lang="ts" setup>\nimport { Waterfall } from '@/components/Waterfall'\nimport Mock from 'mockjs'\nimport { ref, unref } from 'vue'\nimport { toAnyString } from '@/utils'\n\nconst data = ref<any>([])\n\nconst getList = () => {\n  const list: any = []\n  for (let i = 0; i < 20; i++) {\n    // 随机 100, 500 之间的整数\n    const height = Mock.Random.integer(100, 500)\n    const width = Mock.Random.integer(100, 500)\n    list.push(\n      Mock.mock({\n        width,\n        height,\n        id: toAnyString(),\n        image_uri: Mock.Random.image(`${width}x${height}`)\n      })\n    )\n  }\n  data.value = [...unref(data), ...list]\n  if (unref(data).length >= 60) {\n    end.value = true\n  }\n}\ngetList()\n\nconst loading = ref(false)\n\nconst end = ref(false)\n\nconst loadMore = () => {\n  loading.value = true\n  setTimeout(() => {\n    getList()\n    loading.value = false\n  }, 1000)\n}\n</script>\n\n<template>\n  <Waterfall\n    :data="data"\n    :loading="loading"\n    :end="end"\n    :props="{\n      src: 'image_uri',\n      height: 'height'\n    }"\n    @load-more="loadMore"\n  />\n</template>\n\n

Waterfall 属性

属性说明类型可选值默认值
data要展示的数据Array--
reset窗口变化是否重新布局booleantrue/falsetrue
width每个项的宽度number-200
gap每个项的间距number-20
loadingText加载中文字string-加载中...
loading是否加载中boolean-false
end是否加载结束boolean-false
endText是否加载结束文字string-没有更多了
props字段别名object-{ src: 'src', height: 'height' }

Waterfall 事件

方法名说明回调参数
loadMore加载更多事件-
',10);p.render=function(s,t,p,e,c,l){return n(),a("div",null,[o])};export default p;export{t as __pageData};