【vue+Element】el-select远程搜索&动态加载

使用 Element 的 el-select 时,若下拉框选项过多,一次性加载会导致页面卡顿、白屏。可通过在 main.js 中定义全局指令,将动态加载的 el-select 封装成 MySelect.vue 公共组件,再在页面引入该组件,实现下拉框动态加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在我们使用 Element 的 el-select 时,当下拉框的选项过多,我们一次性将所有选项都放入下拉框中会导致页面卡顿,每次点击下拉框都会出现白屏,我们可以用自定义指令实现下拉框的动态加载。

首先,在main.js文件中我们可以定义一个全局的指令

Vue.directive('loadmore', {
  bind(el, binding) {
    const dom = el.querySelector('.el-select-dropdown .el-select-dropdown__wrap')
    dom.addEventListener('scroll', function () {
      const condition = this.scrollHeight - this.scrollTop <= this.clientHeight
      if (condition) {
        binding.value()
      }
    })
  }
});

将动态加载的 el-select 封装成一个公共组件以便复用,起名为 MySelect.vue

<template>
  <el-select
    size="small"
    multiple
    v-bind="$attrs"
    v-loadmore="loadProject"
    collapse-tags
    filterable
    :clearable="clearableFlag"
    :placeholder="placeholder"
    :filter-method="ha
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值