我是靠谱客的博主 魁梧黑猫,最近开发中收集的这篇文章主要介绍uniapp nvue吸顶和瀑布流 及补充教程,补充官方文档不足的地方!- App nvue专用组件前面是官方的文档,下面有自己的补充,官方的文档毕竟不足!发出来互相学习的同时,也能防止以后再遇到有这些需求的时候,也可以来复习waterfall以下是补充官方的文档不足,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

App nvue专用组件

  • 前面是官方的文档,下面有自己的补充,官方的文档毕竟不足!发出来互相学习的同时,也能防止以后再遇到有这些需求的时候,也可以来复习
  • waterfall
    • 子组件
    • 属性
    • 事件
    • 注意
  • **==以下是补充官方的文档不足==**
    • waterfall的子组件header吸顶用法,和list完全不一样,注意看完下面说明的
    • 项目里的吸顶效果,已经达到。下面是演示视频

前面是官方的文档,下面有自己的补充,官方的文档毕竟不足!发出来互相学习的同时,也能防止以后再遇到有这些需求的时候,也可以来复习

waterfall

app端nvue专用组件。

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

在nvue中,使用普通view做瀑布流,无法实现重用和不可见渲染资源释放。使用组件,指定cell后,原生引擎会自动优化性能。

子组件

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

  • <cell> :用于定义列表中的子列表项,类似于 HTML 中的 ul 之于 li。<waterfall> 会对 <cell> 进行高效的内存回收以达到更好的性能。
  • <header> :当 <header> 到达屏幕顶部时,吸附在屏幕顶部。
  • <refresh> :用于给列表添加下拉刷新的功能。
  • <loading><loading> 用法与特性和 <refresh> 类似,用于给列表添加上拉加载更多的功能。

官方的图片,等下下面有补充,官方的文档毕竟不足

属性

  • 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

  • column-gap: [可选]列与列的间隙. 如果指定了 normal ,则对应 32
  • left-gap: [可选]左边cell和列表的间隙. 如果未指定 ,则对应 0
  • right-gap: [可选]右边cell和列表的间隙. 如果未指定,则对应 0

在这里插入图片描述

其他支持的属性参见 <list> 组件属性部分

<waterfall> 其属性是和 <list> 一样的,比如 loadmore 事件

事件

支持所有通用事件:

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

注意

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

以下是补充官方的文档不足

waterfall的子组件header吸顶用法,和list完全不一样,注意看完下面说明的

先上两张图,注意看图片中我用 红色蓝色 方框圈起来的地方

在这里插入图片描述
在这里插入图片描述

这里是我当时遇到问题,问群里,也是毫无卵用,根本没有管理回答!有时候他们太忙了也能理解,毕竟,遇到问题,更多的时候还是我们自己想办法去解决的!

问这个问题,是因为我的项目是nvue,然后首页和首页的所有子分类全是瀑布流,vue我试过,也分类多了后,数据越多,就很卡,而且vue的性能是没有nvue高的。

在这里插入图片描述
然后当我接着准备做瀑布流的时候,才发现 <waterfall> 不能作为 <list> 的子组件使用,然后又去看了一遍官方文档,原来 <waterfall><list> 是同级别的,他们都是父容器。不能互相作为子容器嵌套。

接着,我又把 <list> 换成了 <waterfall> ,可是BUG就出现了,子组件 <header> 不能吸顶,而使用 <list> 作为父容器是可以吸顶的。这就很蛋痛,注意看官方的这一段,它说明的根本不详细!
在这里插入图片描述
官方说 当 <header> 到达屏幕顶部的时候,会自动吸顶,可是实际项目里是不行的,它还少说了 需要给 <header> 设置一个CSS的吸顶属性
代码见下面截图
在这里插入图片描述

官方的图片里也有,只是很容易被忽略!

在这里插入图片描述

在这里插入图片描述

项目里的吸顶效果,已经达到。下面是演示视频

uniapp nvue下的瀑布流和吸顶效果,教程可以看评论里的教程链接

点击查看演示视频

下面是项目里的代码结构,可参考,里面有注释说明

<uni-waterfall :border="false"
		@scrolltolower="loadMoreNVUE"
		@scrollend="scrollendNVUE"
		>	
			<!-- 不吸顶 -->
			<!-- banner-ad [横幅海报广告] -->
			<uni-header>
				<FatFatMeng-banner-ad
				Image_ad="https://r1.ykimg.com/material/0A03/A1/202107/0720/3070562/1626770419878/0D01000060F68C903891682302504A46.jpg"
				></FatFatMeng-banner-ad>
			</uni-header>
			<!-- 不吸顶 -->
			<!-- grid-srcoll-x [grid宫格Icon快捷导航] -->
			<uni-header>
				<FatFatMeng-grid-scroll-x
				:gridlist="gridlist"
				></FatFatMeng-grid-scroll-x>
			</uni-header>
			
			<!-- 吸顶,因为设置了position:sticky; top: 0px;属性 -->
			<!-- tabs-mfw [仿马蜂窝滑动导航栏,并带有吸顶效果] -->
			<uni-header style="position:sticky; top: 0px;">
				<FatFatMeng-Tabs-mfw
				:isFixedTop="Number(55)+Number(statusBarHeight)"
				:isFixed="isFixed"
				:tabslist="tabslist"
				:current="TabCurIndex"
				:windowWidth="screenWidth"
				@change="TabsTap"
				></FatFatMeng-Tabs-mfw>
			</uni-header>
			
			
			
			<!-- 1 -->
			<uni-cell>
				<view style="height: 400px;background-color: #727D8D;">
					<text>{{flag}}</text>
				</view>
				<view style="height: 400px;background-color: #F0AD4E;">
					<text v-for="(item,index) in 100">111111111</text>
				</view>
			</uni-cell>
			<!-- 2 -->
			<uni-cell>
				<view style="height: 200px;background-color: #07C160;">
					<text>{{flag}}</text>
				</view>
				<view style="height: 400px;background-color: #F0AD4E;">
					<text v-for="(item,index) in 100">111111111</text>
				</view>
			</uni-cell>
			<!-- 3 -->
			<uni-cell>
				<view style="height: 400px;background-color: #727D8D;">
					<text>{{flag}}</text>
				</view>
				<view style="height: 400px;background-color: #F0AD4E;">
					<text v-for="(item,index) in 100">111111111</text>
				</view>
			</uni-cell>
			<!-- 4 -->
			<uni-cell>
				<view style="height: 400px;background-color: #727D8D;">
					<text>{{flag}}</text>
				</view>
				<view style="height: 400px;background-color: #F0AD4E;">
					<text v-for="(item,index) in 100">111111111</text>
				</view>
			</uni-cell>
			
		</uni-waterfall>

最后,如果这篇文章 帮助到了你 ,请点个赞支持下,谢谢你的举手之劳

最后

以上就是魁梧黑猫为你收集整理的uniapp nvue吸顶和瀑布流 及补充教程,补充官方文档不足的地方!- App nvue专用组件前面是官方的文档,下面有自己的补充,官方的文档毕竟不足!发出来互相学习的同时,也能防止以后再遇到有这些需求的时候,也可以来复习waterfall以下是补充官方的文档不足的全部内容,希望文章能够帮你解决uniapp nvue吸顶和瀑布流 及补充教程,补充官方文档不足的地方!- App nvue专用组件前面是官方的文档,下面有自己的补充,官方的文档毕竟不足!发出来互相学习的同时,也能防止以后再遇到有这些需求的时候,也可以来复习waterfall以下是补充官方的文档不足所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部