搜索页面scroll下拉时候进行刷新,显示更多搜索值
2024-08-24 02:37:18
1.封装扩展scroll.vue功能;
//props传值 pullup:{
type:Boolean,
default:false
} _initScroll(){
if(!this.$refs.wrapper){
return
}
this.scroll = new BScroll(this.$refs.wrapper,{
probeType: this.probeType,
click: this.click
})
if(this.listenScroll){//初始化时候判断是否监听滚动
let _this=this
this.scroll.on('scroll',(pos)=>{
_this.$emit('scroll',pos)
})
}
if(this.pullup){//滚动到底部的时候进行事件监听,刷新搜索列表//这里只是派发事件;
this.scroll.on('scrollEnd',()=>{
if(this.scroll.y <=(this.scroll.maxScrollY + 50)){
this.$emit('scrollToEnd')
}
})
}
},
2.在suggest中传值:
<scroll
:pullup="pullup"
@scrollToEnd = 'searchMore'
>
3.searchMore方法:
a.data声明一个标识位hasMore:true;
b.当发送search()请求,请求后端数据的时候hasMore值为true,
c.封装_checkMore()方法,当已经显示条数大于总条数的时候将hasMore:false;
d.每次search()请求的最后调用_checkMore方法确定hasMore的值;
e.当hasMore:true的时候发送再次触发searchMore事件
_checkMore(data){
const song = data.song
if(!song.list.length || (song.curnum + song.curPage*perPage)>song.totalnum){//页码数*每页数量大于总条数
this.hasMore = false
}
},
searchMore(){
if( !this.hasMore){
return
}
this.page++
search(this.query,this.page,this.showSinger,perpage).then((res) =>{
if (res.code === ERR_OK) {
this.result = this.result.concat(this._genResult(res.data))
this._checkMore(res.data)
}
})
},
最新文章
- nohup程序后台执行
- lua 学习笔记(1)
- winform 用户控件、 动态创建添加控件、timer控件、控件联动
- Codeforces558E A Simple Task(线段树)
- sql server 分布式查询 和 主从服务器搭建
- Java-继承,多态练习0922-02
- [转]ionic 通过PouchDB + SQLite来实现app的本地存储(Local Storage)
- Shell 之数组 [转]
- 夺命雷公狗—angularjs—1—三种数据版定方式
- 你所不知道的html5与html中的那些事第三篇
- css link和@import区别用法
- HomeSnap
- hdu1754线段树维护区间最大值
- 09-C语言数组
- SVM(支持向量机)(二)—Lagrange Duality(拉格朗日对偶问题)
- Ubuntu下安装KDE及安装中文环境
- HBase MVCC 代码阅读(一)
- WEB前端常见面试题汇总:(一)
- pwnable.kr fb
- Linux命令:mapfile
热门文章
- 重启ssh服务出现Redirecting to /bin/systemctl restart sshd.service
- boost boost::asio::read socket.read_some 区别
- leetcode44:wildcard
- 获取当前日期 java
- 进阶之路(基础篇) - 009 通过底层AVR方法实现SPI数据传输
- 【Linux】分割命令split
- 测试Js权限
- 关于varchar(max), nvarchar(max)和varbinary(max)
- [Aaronyang] 写给自己的WPF4.5 笔记5[数据绑定三巴掌1/3]
- java 中获得 资源文件方法