[https://www.cnblogs.com/lxz-blogs/p/12599475.html](https://www.cnblogs.com/lxz-blogs/p/12599475.html)
* [pages.json 设置对应页面,激活下拉](https://www.kancloud.cn/wangking/uniapp/1868615#pagesjson__2)
* [代码测试](https://www.kancloud.cn/wangking/uniapp/1868615#_14)
## pages.json 设置对应页面,激活下拉
> 设置enablePullDownRefresh属性,即可激活
~~~
{
"path": "pages/pull_down/index",
"style": {
"navigationBarTitleText": "上拉下拉测试",
"enablePullDownRefresh":true
}
}
~~~
## 代码测试
> 需要用到的生命周期有:
>
> 1. onLoad
> 2. onPullDownRefresh
> 3. onReachBottom
~~~
<template>
<view>
<view v-for="(item,index) of newList" :key="index" class="newList">
{{item}}
</view>
<view class="loading">{{loadingTxt}}</view>
</view>
</template>
<script>
let page=1,timer=null
export default {
data() {
return {
newList:[],
isTheLastPage:false,
loadingTxt:'加载更多'
}
},
onLoad(e) {
this.getInitNews()
},
onPullDownRefresh() {
//下拉的生命周期
this.getInitNews()
},
onReachBottom() {
//阻止重复加载
if(timer !== null){
clearTimeout(timer)
}
timer=setTimeout(()=>this.getMoreNews(),500)
// this.getMoreNews()
},
methods: {
//下拉刷新事件
getInitNews(){
page=1
//标题读取样式激活
uni.showNavigationBarLoading()
uni.request({
url:'https://demo.hcoder.net/index.php?user=hcoder&pwd=hcoder&m=List1&page=1',
success: (res) => {
this.newList=res.data.split('--hcSplitor--')
//停止下拉样式
uni.stopPullDownRefresh();
//隐藏标题读取
uni.hideNavigationBarLoading();
this.isTheLastPage = false;
page++
}
})
},
//加载更多的新闻
getMoreNews(){
if (this.isTheLastPage) return;
this.loadingTxt='加载中'
uni.showNavigationBarLoading()
uni.request({
url:'https://demo.hcoder.net/index.php?user=hcoder&pwd=hcoder&m=List1&page='+page,
success: (res) => {
if(res.data===null){
this.loadingTxt="已经加载全部";
//隐藏标题读取
uni.hideNavigationBarLoading();
this.isTheLastPage = true;
return
}
this.newList=this.newList.concat(res.data.split('--hcSplitor--'))
// this.newList=[...this.newList,res.data.split('--hcSplitor--')]
//停止下拉样式
uni.stopPullDownRefresh()
//隐藏标题读取
uni.hideNavigationBarLoading()
page++
}
})
},
}
}
</script>
<style>
.newList{line-height: 2em;padding: 20px;}
.loading{line-height: 2em;text-align: center;color: #888;margin-top: 30rpx;}
</style>
~~~
- 基础知识
- UNI核心介绍
- flex布局
- 生命周期
- 全局方法
- 组件定义
- 自定义组件
- 全局组件
- 组件之间的数据传输
- 条件编译
- 自定义头部
- 节点信息 (SelectorQuery)
- vuejs基础语法
- 页面跳转以及参数传递
- 事件的监听注册以及触发
- css3动画
- block的妙用
- mixin (混入)
- uniapp快捷键
- vuex状态管理
- 实用功能
- 获取服务提供商
- 启动页 / 启动界面
- 引导页
- tabbar配置
- 头部导航栏基础设置
- 上拉下拉(刷新/加载)
- 第三方登录
- 第三方分享
- 推送通知 之 unipush
- scroll-view双联动
- 配置iOS通用链接(Universal Links)
- 本地缓存操作
- 升级/更新方案
- 热更新
- 图片上传
- 搜索页实现
- canvas绘图助手
- 地图定位
- 第三方支付————todo
- 分类轮播
- 清除应用缓存
- uniapp与webview的实时通讯
- 视频-----todo
- 聊天----todo
- 长列表swiper左右切换
- 第三方插件
- uview
- mescroll
- uCharts (图表)
- 无名 (更新插件)
- 第三方模版
- 自定义基座
- 打包发行
- 要封装的方法
- 缓存 cache.js
- 请求接口 request.js
- 工具类 util.js
- 小程序登录 xcxLogin.js
- 版本更新 update.js
- 优质插件
- 更新插件----todo
- 语音
- 语音识别 (含上传)
- 百度语音合成播报接口
- 官方常用组建
- input 输入框
- image 图片
- audio 音频
- picker 选择器
- video 视频
- scroll-view 滚动视图
- uni-app 地图全解析+事件监听