导引
封装工具方法如何在组件中使用
封装工具方法
let loading
=false;
const scrollBottom =(callback
)=>{
let t
=document
.documentElement
.scrollTop
;
let h
=document
.documentElement
.clientHeight
;
let v
=document
.body
.scrollHeight
;
if(t
+h
>=v
-50&&!loading
){
loading
=true;
callback().then(()=>{
loading
=false;
}).catch(()=>{
loading
=true;
})
}
}
const registerAddEventListener=(callback
)=>{
window
.addEventListener("scroll", scrollBottom
.bind(this, callback
), false);
}
const removeEventListener=()=>{
window
.removeEventListener('scroll', scrollBottom
,false);
}
export {registerAddEventListener
,removeEventListener
};
如何在组件中使用
<template
>
<div
>
<ul
>
<li v
-for="item in list" :key
="item.id">{{item
}}</li
>
</ul
>
</div
>
</template
>
<script
>
import {registerAddEventListener
,removeEventListener
} from '../../utils/utils.js'
export default {
data() {
return {
list
: []
};
},
mounted() {
registerAddEventListener(this.loading
);
},
destroyed() {
removeEventListener();
},
methods
: {
loading() {
return new Promise(((resolve
,reject
)=>{
this.$http
.get(`api_url`).then(res
=>{
if(res
.data
.length
>0){
this.list
=res
.data
;
resolve()
}else{
reject()
Toast('到底啦!!!')
}
})
}))
}
}
};
</script
>
<style scoped
>
</style
>
在最好的年纪去努力!!
转载请注明原文地址:https://ipadbbs.8miu.com/read-11460.html