waterfall.md 3.6 KB
Newer Older
Q
qiang 已提交
1 2 3 4
#### waterfall

app端nvue专用组件。

d-u-a's avatar
d-u-a 已提交
5
`<waterfall>` 组件是提供瀑布流布局的核心组件。瀑布流,又称瀑布流式布局,是比较流行的一种页面布局,视觉表现为参差不齐的多栏布局。随着页面滚动条向下滚动,这种布局还可以不断加载数据块并附加至当前尾部。
Q
qiang 已提交
6

d-u-a's avatar
d-u-a 已提交
7
在nvue中,使用普通view做瀑布流,无法实现复用和不可见渲染资源释放。使用`<waterfall>`组件且指定`cell`后,原生引擎会自动优化性能。
Q
qiang 已提交
8

Anne_LXM's avatar
Anne_LXM 已提交
9
```html
Q
qiang 已提交
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
<template>
  <waterfall column-count="2" column-width="auto">
    <cell v-for="num in lists" >
      <text>{{num}}</text>
    </cell>
  </waterfall>
</template>
<script>
  export default {
    data () {
      return {
        lists: ['A', 'B', 'C', 'D', 'E']
      }
    }
  }
</script>

<style></style>
```

#### 子组件

`<list>` 组件一样, `<waterfall>` 组件的子组件只能包括以下四种组件或是 fix 定位的组件,其他形式的组件将不能被正确渲染。

- `<cell>`:用于定义列表中的子列表项,类似于 HTML 中的 ul 之于 li。`<waterfall>` 会对 `<cell>` 进行高效的内存回收以达到更好的性能。
- `<header>`:当 `<header>` 到达屏幕顶部时,吸附在屏幕顶部。
- `<refresh>`:用于给列表添加下拉刷新的功能。
- `<loading>``<loading>` 用法与特性和 `<refresh>` 类似,用于给列表添加上拉加载更多的功能。
  <img src="https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-uni-app-doc/e6b5dbe0-4f2e-11eb-97b7-0dc4655d6e68.png" />

#### 属性

- show-scrollbar : `[可选]` 可选值为 true/ false,默认值为 true。控制是否出现滚动条。
- column-count: `[可选]`描述瀑布流的列数
  - auto: 意味着列数是被其他属性所决定的(比如 column-width)
  - `<integer>`: 最佳列数,column-width 和 column-count 都指定非0值, 则 column-count 代表最大列数。
- column-width : `[可选]`描述瀑布流每一列的列宽
  - `auto`: 意味着列宽是被其他属性所决定的(比如 column-count)
  - `<length>`: 最佳列宽,实际的列宽可能会更宽(需要填充剩余的空间), 或者更窄(如果剩余空间比列宽还要小)。 该值必须大于0
Anne_LXM's avatar
Anne_LXM 已提交
49 50 51
- column-gap: `[可选]`列与列的间隙. 如果指定了 `normal` ,则对应 32.
- left-gap: `[可选]`左边cell和列表的间隙. 如果未指定 ,则对应 `0`
- right-gap: `[可选]`右边cell和列表的间隙. 如果未指定,则对应 `0`
Q
qiang 已提交
52
  <img src="https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-uni-app-doc/e78b5450-4f2e-11eb-b680-7980c8a877b8.png" />
53
- always-scrollable-vertical : `[可选]` 可选值为 true/ false,默认值为 false,iOS 平台,内容不满一屏无法触发下拉刷新时需要设置为true,因为默认子视图高度不超过父视图高度的时候 waterfall 不能滑动
Q
qiang 已提交
54

Anne_LXM's avatar
Anne_LXM 已提交
55
其他支持的属性参见 `<list>` [组件属性部分](https://uniapp.dcloud.net.cn/component/list.html)
Q
qiang 已提交
56 57

#### 事件
Anne_LXM's avatar
Anne_LXM 已提交
58
支持所有[通用事件](https://uniapp.dcloud.net.cn/tutorial/nvue-event.html)
Q
qiang 已提交
59 60 61 62 63 64 65 66

- click:用于监听点击事件。(例如:一般绑定于子组件之上触发跳转)。
- longpress:用于监听长按事件(一般绑定于子组件之上例如:长按可删除)。
- appear:用于监听子组件出现事件(一般绑定于子组件之上例如:监听最后一个元素出现,加载新的数据)
- disappear:用于监听子组件滑出屏幕事件(一般绑定于子组件之上)

**注意**
- waterfall是区域滚动,不会触发页面滚动,无法触发pages.json配置的下拉刷新、页面触底onReachBottomDistance、titleNView的transparent透明渐变。