手册版本 V5.0
组件介绍
此页面演示场景 : 使用 gui-page 组件实现内置加载更多( 页面主体是一个内置竖向滚动区域 );
实现功能 : 实现内置滚动区域滚动条归零,从而实现返回顶部功能;
重要函数
gui-page 组件的 setScrollTop() 函数,用于设置内置滚动区域滚动条位置;
兼容平台
演示代码
<template>
<gui-page
:isLoading="pageLoading"
:apiLoadingStatus="apiLoadingStatus"
:loadmore="true"
@loadmorefun="getdata"
@scroll="scroll"
ref="guipage">
<view slot="gBody">
<text
v-for="(item, idx) in demoData" :key="idx"
class="demo gui-block-text gui-bg-gray gui-color-blue gui-text-center gui-text-small">{{item}}</text>
<gui-totop
:top="top"
@totop="totop"></gui-totop>
</view>
</gui-page>
</template>
<script>
// 模拟数据
var data = [1,2,3,4,5,6,7,8];
var graceJs = require('@/GraceUI5/js/grace.js');
// 模拟页码
var page = 1;
export default {
data() {
return {
demoData : [],
pageLoading : true,
// 用于记录是否有 api 请求正在执行
apiLoadingStatus : false,
top : 0
}
},
onLoad: function() {
// 页码加载时第一次加载数据
page = 1;
this.demoData = [];
this.getdata();
},
methods: {
// 刷新函数
getdata : function(){
this.apiLoadingStatus = true;
console.log('加载函数运行,页码 : ' + page);
// 模拟 api 请求刷新数据
setTimeout(()=>{
// 对演示数据随机刷新模拟数据刷新
var demoArr = graceJs.arrayShuffle(data);
if(page >= 2){
this.demoData = this.demoData.concat(demoArr);
// 加载完成后停止加载动画
this.$refs.guipage.stoploadmore();
// 假定第3页加载了全部数据,通知组件不再加载更多
// 实际开发由接口返回值来决定
if(page >= 3){
this.$refs.guipage.nomore();
}
}
// 第一页数据
else{
this.demoData = demoArr;
this.pageLoading = false;
}
page++;
this.apiLoadingStatus = false;
}, 1000);
},
// 滚动
scroll : function (e) {
this.top = e.detail.scrollTop;
},
// 操作页面内部滚动区域实现返回页面顶部
totop : function () {
this.$refs.guipage.setScrollTop(0);
}
}
}
</script>
<style>
.demo{margin:30rpx; line-height:200rpx;}
</style>
登录并购买 GraceUI 后可以查阅完整手册内容 。
登录并购买 GraceUI 后可以查阅完整手册内容 。
登录并购买 GraceUI 后可以查阅完整手册内容 。