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过滤器filters如何使用

    Vue过滤器filters如何使用

    Vue过滤器filters用于一些常见的文本格式化,通过过滤器可以进行处理成自己想要展示出来的格式,由“管道”符号指示,本文给大家介绍Vue过滤器filters使用方式,感兴趣的朋友一起看看吧
    2023-10-10
  • vue3自定义指令实现按钮防抖示例详解

    vue3自定义指令实现按钮防抖示例详解

    这篇文章主要为大家介绍了vue3自定义指令实现按钮防抖示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • 详解Vue.js中的组件传值机制

    详解Vue.js中的组件传值机制

    Vue.js 是一款流行的前端框架,它提供了一些方便的机制来管理组件之间的通信,其中包括组件传值,本文将详细介绍 Vue.js 中的组件传值机制,包括父子组件传值、兄弟组件传值、跨级组件传值等多种方式,需要的朋友可以参考下
    2023-08-08
  • 浅析vue3项目中自定义指令的运用

    浅析vue3项目中自定义指令的运用

    自定义指令是一种在Vue应用程序中扩展HTML标签的能力,通过自定义指令,我们可以直接在模板中使用指令名,下面我们就来看看项目中具体如何使用自定义指令的吧
    2023-08-08
  • VSCode创建Vue项目的完整步骤教程

    VSCode创建Vue项目的完整步骤教程

    Vue是一个轻量级、渐进式的Javascript框架,如果想要要开发全新的Vue项目,建议项目构建工具vue-cli,下面这篇文章主要给大家介绍了关于VSCode创建Vue项目的完整步骤,需要的朋友可以参考下
    2022-06-06
  • 详解Vue的七种传值方式

    详解Vue的七种传值方式

    这篇文章主要介绍了Vue的七种传值方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • vant/vue跨域请求解决方案

    vant/vue跨域请求解决方案

    这篇文章主要介绍了vant/vue跨域请求解决方案,需要的朋友可以参考下
    2022-12-12
  • vue使用keep-alive实现组件切换时保存原组件数据方法

    vue使用keep-alive实现组件切换时保存原组件数据方法

    这篇文章主要介绍了vue使用keep-alive实现组件切换时保存原组件数据方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • 浅谈使用Vue完成移动端apk项目

    浅谈使用Vue完成移动端apk项目

    这几天,我做了一个vue移动端的小项目,本文主要介绍了Vue移动端apk项目,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • 使用element upload上传组件如何去掉删除按钮

    使用element upload上传组件如何去掉删除按钮

    这篇文章主要介绍了使用element upload上传组件如何去掉删除按钮
    2023-07-07

最新评论