vue element el-select下拉滚动加载的方法
更新时间:2022年11月25日 15:09:54 作者:别拿曾经看以后~
很多朋友都遇到这样一个问题在使用vue+element的el-select下拉框加载返回数据太多时,会造成卡顿,用户体验欠佳,这篇文章主要介绍了vue element el-select下拉滚动加载方法,需要的朋友可以参考下
使用vue+element的el-select下拉框加载返回数据太多时,会造成卡顿,用户体验欠佳,记录一个滚动加载的方法:
1、挂载一个全局的方法(main.js):
// 滚动加载更多 Vue.directive('loadMore', { bind(el, binding) { // 获取element,定义scroll 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() } }) } });
2、demo设置(template结构)
<template> <el-form-item label="所属分类"> <el-select v-model="curr" placeholder="分类" @change="change" v-loadMore="loadMore" clearable filterable> <el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.value"> </el-option> </el-select> </el-form-item> </template>
3、字段设置(data)
data(){ return { curr:'', names:[], list:[], pageData: { index: 1, size: 100 }, } },
4、事件方法(methods)
methods:{ // 加载更多 loadMore() { this.pageData.index++; this.sceneData(this.pageData); }, // 请求数据 async sceneData(){ let self=this this.names= []; // 清空 let num = this.pageData.index * this.pageData.size; const {data,code,message}=await apiList({}); if(code===0){ self.names= data self.list= self.id.filter((item, index, arr) => { return index < num; }); } }, }
到此这篇关于vue element el-select下拉滚动加载的文章就介绍到这了,更多相关vue element下拉滚动加载内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Vue全局共享数据之globalData,vuex,本地存储的使用
这篇文章主要介绍了Vue全局共享数据之globalData,vuex,本地存储的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-10-10vite+vue3+tsx项目打包后动态路由无法加载页面的问题及解决
这篇文章主要介绍了vite+vue3+tsx项目打包后动态路由无法加载页面的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-03-03
最新评论