vue使用自定义指令使用滚动加载
2023-12-16 15:09:44
使用自定义指令directives来实现滚动加载,下面以下拉框滚动加载为例
<template>
<el-select
v-model="ruleForm.train_set_id"
v-loadMore="loadMore"
placeholder="请选择"
>
<el-option
v-for="item in dataList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</template>
<script>
export default {
data() {
return {
}
}
directives: {
loadMore: {
bind(el, binding) {
let select_dom = el.querySelector('.el-select-dropdown .el-select-dropdown__wrap');
select_dom.addEventListener('scroll', function () {
let height = this.scrollHeight - this.scrollTop <= this.clientHeight;
if (height) {
binding.value()
}
})
}
},
},
methods: {
loadMore() {
if (this.dataAllNum > this.datasetsList.length) {
this.dataPage++
let headers = { "token": JSON.parse(window.localStorage.getItem('token')) }
this.$axios.get(`url`, {
params: {
page: this.dataPage,
page_size: this.dataPageSize,
},
headers
}).then(res => {
res.data.data.forEach(item => {
this.dataList.push(item)
})
this.dataAllNum = res.data.query_total
})
}
},
}
}
</script>
文章来源:https://blog.csdn.net/qq_44401371/article/details/135030711
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!