element-plus中Autocomplete自动补全输入框组件的使用

目录

1.基本使用

①从官网赋值如下代码

②查看运行效果

③代码解读

2.调用后端接口,动态获取建议数据

结语


1.基本使用

①从官网赋值如下代码

html 复制代码
<template>
<div>
  <!-- 自动补全输入框 -->
  <el-autocomplete
    v-model="state"
    :fetch-suggestions="querySearch"
    :trigger-on-focus="false"
    clearable
    style="width:300px;"
    placeholder="请输入内容"
    @select="handleSelect"
  />

</div>
</template>

<script setup>
import { onMounted, ref } from 'vue';

//动态绑定自动补全输入框的值
const state = ref('');

//存储建议列表的数据源,初始为空数组。
const restaurants = ref([]);

//根据用户输入的内容(queryString)过滤建议列表。如果用户没有输入内容,则返回所有建议项。调用 cb(results) 将过滤后的结果传给 el-autocomplete 组件。
const querySearch = (queryString, cb) => {
  const results = queryString
    ? restaurants.value.filter(createFilter(queryString))
    : restaurants.value;
  cb(results);
};

//创建一个过滤器函数,用于匹配用户输入的内容。检查建议项的 value 是否以用户输入的内容开头(不区分大小写)。
const createFilter = (queryString) => {
  return (restaurant) => {
    return restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0;
  };
};


//自定义函数loadAll,用来返回输入框自动补全时建议的数据
const loadAll = () => {
  //所有可能匹配的选项。(注意:每一个选项都是一个对象,构成这个对象数组)
  return [
    { value: 'vue' },
    { value: 'element' },
    { value: 'cooking' },
    { value: 'mint-ui' },
    { value: 'vuex' },
    { value: 'vue-router' },
    { value: 'babel' },
  ];
};

//选中自动输入框的建议时,触发的事件
const handleSelect = (item) => {
  //item是我们选中的建议中的那个选项(是一个对象)
  alert(JSON.stringify(item));
};

//element-plus组件加载完成后,调用 loadAll函数 初始化 restaurants 数据(我们可以在这个函数内,发送axios请求后端,获取数据,此时就不需要通过loadAll函数来获取数据了)
onMounted(() => {
  restaurants.value = loadAll();
});
</script>

<style scoped>

</style>

②查看运行效果

③代码解读

2.调用后端接口,动态获取建议数据

编写后端接口,返回一个对象数组:

修改js代码:

展示效果:

结语

以上就是element-plus中Autocomplete自动补全输入框组件的使用。

喜欢本篇文章的话,可以留个免费的关注~~

相关推荐
莪_幻尘1 小时前
Skill 体检:30 个 Skill 全凭感觉?体检器先自曝了 8 个“假 0 分
前端·人工智能·llm
风骏时光牛马1 小时前
AI模型综合能力评测:性能、指令遵循与多场景实测对比
前端
Frag0ut1 小时前
Chrome与Chromium内核浏览器在Windows 11上的新特性全景解析
前端·chrome·windows·web安全·chromium·gemini ai·playready drm
hiahiahia1232 小时前
实现完整 Tool Dispatcher
开发语言·前端
IT_陈寒2 小时前
Java线程池这破玩意,差点让我周末加班排查到凌晨
前端·人工智能·后端
Mr_Mao3 小时前
告别选型困难!集 VueUse、ahooks、Mantine 于一身:286 个 Hook 的 ReaUse 来了
前端·javascript·react.js
泡海椒4 小时前
趋势分析报表:jquick-pdf折线图PDF生成实战
java·大数据·运维·服务器·前端·pdf
qwfy4 小时前
我要用 AI-native 架构,从零重建一套制造业 ERP/MES
vue.js·spring boot·架构
默_笙4 小时前
🚙 一条腿走路会摔:ES 关键词检索、混合召回与 ReRank 裁判
前端·javascript
YIAN4 小时前
从跨域代理到 WebSocket:梳理前端实时通信的底层逻辑与完整实践
前端·websocket