评论

你想要的微信小程序瀑布流组件库:me-waterfall

me-waterfall 是一个微信小程序瀑布流组件库,实现简单,侵入性小,贴近 web 端的效果。

介绍

me-waterfall 是一个微信小程序瀑布流组件库,实现简单,侵入性小,贴近 web 端的效果。

线上体验

扫描下方的小程序二维码,体验使用效果:

安装

方式一:使用 npm 安装(推荐)

npm install me-waterfall

方式二:下载源码

将源码下载到本地,然后将 lib 目录拷贝到自己的项目中。

使用方法

在页面的 json 文件或 app.json 中引入组件:

{
  "usingComponents": {
    "me-waterfall": "/path/to/me-waterfall/waterfall/index",
    "me-waterfall-item": "/path/to/me-waterfall/waterfall-item/index"
  }
}

然后就可以在 wxml 中直接使用了:

<me-waterfall>
    <me-waterfall-item wx:for="{{list}}" wx:key="{{index}}">
        <image src="{{item.src}}" style="height:{{item.height}}px;width:100%"/>
    </me-waterfall-item>
</me-waterfall>

API

waterfall 组件

props

参数 说明 类型 默认值 是否必须
width 容器宽度,传入后将优先使用此值,呈现速度更快 Number -
column 列数 Number 2
gap 列与列之间的间距 Number 15

methods

reflow

重新排列元素,在某些情形下,你可能希望在完成某些操作后对瀑布流进行重新排列,此时可以调用此方法:

const waterfallInstance = this.selectComponent("#waterfall");

waterfallInstance.reflow();

外部样式类

参数 说明 类型 默认值 是否必须
custom-class 外部样式类 String -

waterfall-item 组件

外部样式类

参数 说明 类型 默认值 是否必须
custom-class 外部样式类 String -

关于性能

首先,够用;

其次,由于微信小程序中获取元素尺寸的 api 为回调形式,因此排列内部元素时需要延迟,即等到容器宽度取到之后再进行排列,这会使得瀑布流呈现速度减慢;如果改为传入 width,呈现速度会更快。

捐赠

如果这个库有帮助,请 Star 这个仓库,让更多人发现它。

当然,也可以鼓励我一下:

开源协议

本项目基于 MIT 协议。

最后一次编辑于  2022-07-25  
点赞 5
收藏
评论

8 个评论

  • 微信小店技术专员-binnie
    微信小店技术专员-binnie
    2023-02-16

    scroll-view 也支持瀑布流布局了,欢迎大家接入使用~

    https://developers.weixin.qq.com/community/develop/article/doc/000a088c5c471062bf0f0af1a5b813

    2023-02-16
    赞同 1
    回复 4
    • 蓝枫
      蓝枫
      2023-02-28
      本来只是一个小功能,切换引擎基本需要重构代码了,有点小题大做,能在现有引擎的基础上出个吗?
      2023-02-28
      回复
    • 微信小店技术专员-binnie
      微信小店技术专员-binnie
      2023-03-02回复蓝枫
      新的引擎才支持的,旧的不支持的,建议在新的页面上使用
      2023-03-02
      回复
    • 飞
      2023-09-21
      低版本的还不支持,还需要自行做兼容性处理,成本太高了。
      2023-09-21
      回复
    • honwhy.wang
      honwhy.wang
      2023-10-11
      我正在使用官方的方案,但是怎么做触底更新,还有就是不担心内存溢出吗,有没有recycle-view的结合方案呢
      2023-10-11
      回复
  • sun
    sun
    2022-07-04

    item.height 的值哪里来的 也就是图片的高度怎么来的?

    2022-07-04
    赞同 1
    回复 1
    • 蓝枫
      蓝枫
      2022-07-08
      后端返回的
      2022-07-08
      回复
  • 陈超15716104770
    陈超15716104770
    05-14

    使用图片widthFix的时候 有时候会错位 需要后端传图片高度吗?

    05-14
    赞同
    回复
  • 晓宜
    晓宜
    04-23

    这个npm install后应该如何引入呢?

    04-23
    赞同
    回复
  • Zvemiy9
    Zvemiy9
    03-20

    大佬源码在哪呀,我npm下载提示成功了但是用的时候一直找不到路径

    03-20
    赞同
    回复
  • 粮食and蔬菜
    粮食and蔬菜
    2023-01-03

    为啥我安装不上啊,老是报路径错误。报错代码:

    [ app.json 文件内容错误] app.json: ["usingComponents"]["me-waterfall"]: "me-waterfall/waterfall/index" 未找到(env: Windows,mp,1.06.2210310; lib: 2.26.2)

    2023-01-03
    赞同
    回复 1
    • 蓝枫
      蓝枫
      2023-01-25
      你这个报错,尝试一下先install,然后构建npm包;如果不能解决,得问问官方了
      2023-01-25
      回复
  • 蔡啊菜
    蔡啊菜
    2022-09-30

    想请教一下,用这个插件当数据只有三条的时候 第一条图片高度225 第二条202 第三条225 这个情况下第三条数据渲染到右边了

    2022-09-30
    赞同
    回复 1
    • 蓝枫
      蓝枫
      2022-11-04
      服了腾讯了,没有消息通知;你说的情况没有问题嘛,第二条高度202,小于第一条的225,所有第三条会出现在第二条下面
      2022-11-04
      回复
  • 相见莫若归去好
    相见莫若归去好
    发表于小程序端
    2022-06-11

    找了好久,终于找到个好用的了,感谢大佬🙏

    2022-06-11
    赞同
    回复 1
    • 蓝枫
      蓝枫
      发表于小程序端
      2022-06-12

      有帮助就好,可以帮忙点个star

      2022-06-12
      回复
登录 后发表内容