el-select实现本地搜索数据

el-select 组件可以通过设置 filterable 属性来实现本地搜索数据。

  1. HTML 模板:
<template>
  <el-select
    v-model="selectedValue"
    filterable
    placeholder="请选择"
    @filter-method="filterMethod"
  >
    <el-option
      v-for="item in filteredOptions"
      :key="item.value"
      :label="item.label"
      :value="item.value"
    >
    </el-option>
  </el-select>
</template>
  1. JavaScript 代码:
<script>
export default {
  data() {
    return {
      selectedValue: '',
      options: [
        { value: 'option1', label: 'Option 1' },
        { value: 'option2', label: 'Option 2' },
        { value: 'option3', label: 'Option 3' },
        { value: 'option4', label: 'Option 4' },
        { value: 'option5', label: 'Option 5' },
      ],
      filteredOptions: []
    }
  },
  created() {
    this.filteredOptions = this.options;
  },
  methods: {
    filterMethod(query) {
      if (query !== '') {
        this.filteredOptions = this.options.filter(item => {
          return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1;
        });
      } else {
        this.filteredOptions = this.options;
      }
    }
  }
}
</script>

在这个例子中:

  1. 我们设置了 filterable 属性来启用过滤功能。

  2. 我们使用 @filter-method 来绑定一个自定义的过滤方法 filterMethod

  3. data 中,我们定义了 options 数组来存储所有选项,以及 filteredOptions 数组来存储过滤后的选项。

  4. created 钩子中,我们初始化 filteredOptions 为所有选项。

  5. filterMethod 方法中,我们根据输入的查询字符串 query 来过滤选项。如果 query 不为空,我们使用 filter 方法来筛选那些标签包含查询字符串的选项(不区分大小写)。如果 query 为空,我们显示所有选项。

  6. 在模板中,我们遍历 filteredOptions 而不是 options,这样就可以只显示过滤后的选项。

关注微信公众号温暖前端,不定期分享前端知识点和前端资料↓↓↓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温暖前端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值