当前位置:首页 > 前端教程

elementui autoselect

2026-03-05 22:03:13前端教程

ElementUI 的自动完成选择功能

ElementUI 提供了 el-autocomplete 组件来实现自动完成选择功能。该组件允许用户输入内容时,根据输入值动态匹配并展示候选选项,提升用户输入效率。

基本用法

通过 v-model 绑定输入值,fetch-suggestions 属性指定获取建议项的方法。以下是一个简单示例:

<template>
  <el-autocomplete
    v-model="inputValue"
    :fetch-suggestions="querySearch"
    placeholder="请输入内容"
    @select="handleSelect"
  ></el-autocomplete>
</template>

<script>
export default {
  data() {
    return {
      inputValue: '',
      suggestions: []
    }
  },
  methods: {
    querySearch(queryString, cb) {
      const results = queryString
        ? this.suggestions.filter(item => 
            item.value.toLowerCase().includes(queryString.toLowerCase())
          )
        : this.suggestions
      cb(results)
    },
    handleSelect(item) {
      console.log(item)
    }
  }
}
</script>

自定义模板

可以通过 scoped slot 自定义建议项的显示模板:

<el-autocomplete
  v-model="inputValue"
  :fetch-suggestions="querySearch"
  placeholder="请输入内容"
>
  <template #default="{ item }">
    <div class="name">{{ item.value }}</div>
    <span class="addr">{{ item.address }}</span>
  </template>
</el-autocomplete>

远程搜索

结合后端 API 实现远程搜索功能:

methods: {
  querySearch(queryString, cb) {
    if (queryString) {
      axios.get('/api/search', { params: { q: queryString } })
        .then(response => {
          cb(response.data)
        })
    } else {
      cb([])
    }
  }
}

配置项说明

  • v-model: 绑定输入值
  • fetch-suggestions: 获取建议项的方法,需调用回调函数返回结果
  • debounce: 输入延迟毫秒数,默认300
  • placement: 下拉菜单弹出位置
  • trigger-on-focus: 是否在输入框聚焦时显示建议列表

注意事项

  1. 确保 fetch-suggestions 方法调用了回调函数,否则建议列表不会显示
  2. 远程搜索时建议添加防抖处理,减少不必要的请求
  3. 自定义模板时,确保每个建议项有唯一的 value 属性
  4. 可通过 CSS 自定义下拉列表的样式

以上是 ElementUI 自动完成选择功能的基本实现方式,根据实际需求可以进一步扩展和定制。

elementui autoselect

分享给朋友:

相关文章

elementui router

elementui router

Element UI 结合 Vue Router 的使用方法 Element UI 是一个基于 Vue.js 的组件库,而 Vue Router 是 Vue.js 的官方路由管理器。将两者结合使用可以…

elementui流程

elementui流程

Element UI 流程设计 Element UI 提供了一套基于 Vue.js 的流程设计组件,适用于展示步骤流程、任务进度等场景。以下为关键实现方法和组件说明: 安装与引入 确保已安装 El…

elementui treegrid

elementui treegrid

ElementUI TreeGrid 实现方法 ElementUI 本身并未直接提供 TreeGrid 组件,但可以通过组合 Tree 和 Table 组件或使用第三方扩展库实现类似功能。以下是几种实…

elementui引用

elementui引用

安装 Element UI 在项目中通过 npm 或 yarn 安装 Element UI: npm install element-ui --save # 或 yarn add element…

iwiew elementui

iwiew elementui

iView 与 Element UI 对比 iView 和 Element UI 都是基于 Vue.js 的 UI 组件库,适用于快速开发企业级中后台管理系统。以下是两者的详细对比: 设计风格…

vite elementui

vite elementui

使用 Vite 集成 Element Plus Element Plus 是 Element UI 的 Vue 3 版本,与 Vite 兼容性良好。以下是集成步骤: 安装依赖: npm insta…