当前位置: 首页 > news >正文

使用 Vue.js 和 Element Plus 实现自动完成搜索功能

使用 Vue.js 和 Element Plus 实现自动完成搜索功能

  • 一、前言
    • 1.环境准备
    • 2.组件配置
    • 3.后端数据请求
    • 4.样式
    • 5.总结


一、前言

在前端开发中,实现自动完成(autocomplete)功能可以极大地提升用户体验,特别是在需要用户输入和选择内容的场景中。本文将介绍如何使用 Vue.js 结合 Element Plus 组件库,通过向后端发送请求来实现搜索并匹配功能。

1.环境准备

确保你的项目已经集成了 Vue.js 和 Element Plus。如果还没有安装,可以通过以下方式进行安装:

npm install vue@next
npm install element-plus

2.组件配置

首先,我们将创建一个包含自动完成功能的表单组件。

<template><el-form-item label="搜索并匹配:"><el-autocompleteplaceholder="请输入匹配内容"v-model="matchName":fetch-suggestions="querySearchAsync"@select="handleSelect"></el-autocomplete></el-form-item>
</template>

在上面的代码中:

  • el-autocomplete 是 Element Plus 提供的自动完成组件,用于实现输入框下拉匹配功能。
  • v-model="matchName" 将输入框的值与 matchName 变量进行双向绑定。
  • :fetch-suggestions="querySearchAsync" 指定了一个方法 querySearchAsync,用于根据用户输入获取匹配的选项列表。
  • @select="handleSelect" 当用户选择了某个选项时触发 handleSelect 方法。

3.后端数据请求

<script setup> 部分,我们使用 Axios 发起异步请求来获取后端数据。

<script setup>
import axios from "axios";
import { ref } from "vue";
import { ElMessage } from "element-plus";const matchName = ref("");const querySearchAsync = async (querySearch, cb) => {if (!querySearch) {cb([]);return;}try {const response = await axios.get("/xxxxx/xxxxx/xxxxxxx", {params: { current: 1, size: 10, roomName: querySearch },});const options = response.data.data.map(item => ({id: item.id, // 后端返回的唯一标识字段value: item.mpbm // 后端返回的显示文本字段}));cb(options);} catch (error) {ElMessage.error(error.message);cb([]);}
};const handleSelect = (item) => {console.log(item, "选择结果");console.log("[id:" + item.id + "; mpbm:" + item.value + "]");
};
</script>

在这段代码中:

  • querySearchAsync 方法接收用户输入的 querySearch 参数,并通过 Axios 发送 GET 请求到后端接口 /dockingApi/ladderControl/queryRoomName
  • 后端返回的数据格式应包含一个数组,每个元素至少包含 idmpbm(显示文本)字段。
  • 如果请求成功,将返回的数据转换为适合自动完成组件的格式,并通过 cb(options) 将匹配的选项列表传递给组件。
  • 如果请求失败,将显示错误消息。

4.样式

最后,在 <style scoped> 部分,你可以添加组件的样式。

<style scoped>
/* 可以根据需要添加样式 */
</style>

5.总结

通过以上配置,我们成功地实现了一个基于 Vue.js 和 Element Plus 的自动完成搜索功能。用户可以在输入框中输入内容,系统会自动向后端发送请求,并展示匹配的选项供用户选择。这种交互方式不仅提高了用户体验,还通过优化搜索流程,增强了应用程序的功能性和易用性。

相关文章:

使用 Vue.js 和 Element Plus 实现自动完成搜索功能

使用 Vue.js 和 Element Plus 实现自动完成搜索功能 一、前言1.环境准备2.组件配置3.后端数据请求4.样式5.总结 一、前言 在前端开发中&#xff0c;实现自动完成&#xff08;autocomplete&#xff09;功能可以极大地提升用户体验&#xff0c;特别是在需要用户输入和选择内容的…...

SpringBoot自定义starter

SpringBoot自定义starter 1、SpringBoot之starter机制 1.1、什么是自定义starter ​ SpringBoot中的starter是一种非常重要的机制(自动化配置)&#xff0c;能够抛弃以前繁杂的配置&#xff0c;将其统一集成进starter&#xff0c;应用者只需要在maven中引入starter依赖&#…...

深入探索大语言模型

深入探索大语言模型 引言 大语言模型&#xff08;LLM&#xff09;是现代人工智能领域中最为重要的突破之一。这些模型在自然语言处理&#xff08;NLP&#xff09;任务中展示了惊人的能力&#xff0c;从文本生成到问答系统&#xff0c;无所不包。本文将从多个角度全面介绍大语…...

querylist多线程采集curlMulti时,报错Curl error(60)

前言 在使用querylist多线程采集的时候&#xff0c;报错: Curl error(60)。测试了下用http时没有问题&#xff0c;https时有问题。其原因在于多线程采集库引用的另一个库有问题。需要手动更改。 解决 找到&#xff1a;vendor/ares333/php-curl/src/Curl.php 文件&#xff0c…...

Python数据分析~~美食排行榜

目录 1.模块的导入和路径的选择 2.访问前面五行数据 3.按照条件进行筛选 4.获取店铺评分里面的最高分 5.打印对应的店铺的名字 1.模块的导入和路径的选择 # 导入pandas模块&#xff0c;简称为pd import pandas as pd # 使用read_csv()函数 # TODO 读取路径"/Users/fe…...

Linux下解压.tar.gz文件

.tar.gz 是一种常用的压缩包格式&#xff0c;尤其在Unix、Linux以及macOS系统中非常普遍。这个格式结合了两种不同的功能&#xff1a; Tar (.tar): “Tar” 是“Tape Archive”的缩写&#xff0c;最初是为了将数据备份到磁带上而设计的。Tar命令可以将多个文件和目录打包成一个…...

【电商选品干货】差异化卖点要这样打造,80%商家却做不到

今天就给大家说说&#xff0c;如何去挖掘产品的差异化卖点&#xff1f;我们要找差异化卖点&#xff0c;就是因为我们的产品转化率不足&#xff0c;通常有下面几点原因&#xff1a; 1、产品差异化卖点不足&#xff0c;商家占比30% 2、流量和产品卖点不匹配&#xff0c;商家占比…...

LabVIEW比例压力控制阀自动测试系统

开发了一套基于LabVIEW编程和PLC控制的比例控制阀自动测试系统。该系统能够实现共轨管稳定的超高压供给&#xff0c;自动完成比例压力控制阀的耐久测试、流量滞环测试及压力-流量测试。该系统操作简便&#xff0c;具有高精度和高可靠性&#xff0c;完全满足企业对自动化测试的需…...

运营商认证API在Java、Python、PHP中的使用教程

随着数字化浪潮的推进&#xff0c;实名认证已深入我们生活的方方面面&#xff0c;从线上购物到电子资金转移&#xff0c;手机号已成为注册账号的主要凭证。然而&#xff0c;这也带来了身份验证的难题和手机号被盗用注册账号的风险。在信息爆炸的时代背景下&#xff0c;确保每个…...

用虚拟机,可以在x86的电脑上虚拟出arm的电脑吗

1.用虚拟机&#xff0c;可以在x86的电脑上虚拟出arm的电脑吗 是的&#xff0c;可以在x86的电脑上使用虚拟机技术虚拟出ARM架构的电脑。以下是通过虚拟机实现x86电脑上虚拟ARM电脑的几个关键步骤&#xff1a; 选择合适的虚拟化软件&#xff1a;通常&#xff0c;你可以使用如QE…...

富格林:可信观念摆脱暗箱陷阱

富格林指出&#xff0c;投资者产生的暗箱亏损多半是由于被不可信观念的迷惑影响&#xff0c;以为真的可以毫不费力就能赚钱&#xff0c;最后发现连交易的本金都打水漂了。事实上&#xff0c;投资市场并不像大家想得那么简单。要想安全实现交易成功&#xff0c;避免暗箱陷阱&…...

WEB前端01-HTML5基础(01)

一.WEB相关概念 软件架构 C/S: Client/Server &#xff08;客户端/服务器端&#xff09;&#xff1a;在用户本地有一个客户端程序&#xff0c;在远程有一个服务器端程序 优点&#xff1a;用户体验好 缺点&#xff1a;开发、安装&#xff0c;部署&#xff0c;维护麻烦 B/S: Br…...

JUC-常见方法与线程的状态

常见方法 start()与run() 主线程直接调用某个线程t1的run()方法&#xff0c;run方法也会执行&#xff0c;但是并不会启动新的线程&#xff0c;而是有主线程调用的run方法&#xff0c;必须使用start才能启动新线程&#xff0c;但是start只能调用一次。 sleep()与yield() sle…...

如果你酿的酒是黄色,说明肯定是 “糊锅”了。

刚刚酿出的酒一般都是清澈见底的&#xff0c;如果你酿的酒是黄色&#xff0c;说明肯定是 “糊锅”了。这样的酒不仅颜色是黄的&#xff0c;而且还能闻到一股特别浓厚的 焦糊味。 这样的酒&#xff0c;米酒小哥是非常非常熟悉的&#xff0c;因为刚开始学习酿酒的那段时 间&#…...

国漫推荐07

玄幻、奇幻 1.侠岚系列 《侠岚》&#xff08;第1至6季&#xff09; 《画江湖之侠岚》&#xff08;侠岚第7季&#xff09; 2.《斗破苍穹》 三十年河东&#xff0c;三十年河西&#xff0c;莫欺少年穷&#xff01; 3.《武动乾坤》&#xff08;第1至4季&#xff09; 4.《妖神记》…...

力扣刷题35.搜索查找位置

给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出: 2示例 2: 输入:…...

setContentView 流程

setContentView 流程 Activity -> setContentView 开发者设置入口PhoneWindow -> setContentView mWindow 在 attach 时初始化为 PhoneWindow&#xff0c;同时PhoneWindow也是Window唯一的实现类PhoneWindow -> installDecor 这一步的作用是 初始化DecorView, 把Deco…...

基于STM32设计的智能手环(ESP8266+华为云IOT)178

基于STM32设计的智能手环(178) 文章目录 一、前言1.1 项目介绍【1】项目功能介绍【2】项目硬件模块组成【3】ESP8266工作模式配置【4】Android手机APP开发思路【5】项目模块划分1.2 项目功能需求(1)生理参数监测(2)计步功能(3)GPS定位(4)时间显示(5)OLED显示屏展示(…...

EE trade:实物黄金投资的好处和坏处

实物黄金是指以金条、金币、金饰品等形式存在的黄金。实物黄金具有保值、避险、抗通胀等特性&#xff0c;被视为传统的投资避险工具。近年来&#xff0c;随着全球经济形势的不确定性增加&#xff0c;实物黄金的投资价值也受到越来越多的关注。 投资实物黄金的优势 保值性&…...

Flutter RSA公钥转PEM

需添加依赖&#xff1a;pointycastle​​​​​​​ 参考链接&#xff1a;https://github.com/bcgit/pc-dart/issues/165 import dart:convert; import dart:typed_data;import package:pointycastle/pointycastle.dart; import package:pointycastle/src/platform_check/pl…...

renren-fast-vue系统配置中心使用指南:灵活配置与动态切换

renren-fast-vue系统配置中心使用指南&#xff1a;灵活配置与动态切换 【免费下载链接】renren-fast-vue renren-fast-vue基于vue、element-ui构建开发&#xff0c;实现renren-fast后台管理前端功能&#xff0c;提供一套更优的前端解决方案。 项目地址: https://gitcode.com/…...

Kandinsky-5.0-I2V-Lite-5s企业实操:单任务串行设计规避显存过载,保障服务稳定性

Kandinsky-5.0-I2V-Lite-5s企业实操&#xff1a;单任务串行设计规避显存过载&#xff0c;保障服务稳定性 1. 产品概述 Kandinsky-5.0-I2V-Lite-5s是一款轻量级图生视频模型&#xff0c;专为企业级稳定运行而优化。只需上传一张首帧图片&#xff0c;再补充运动或镜头描述&…...

实战指南 — 基于TCGA数据的差异表达分析全流程与可视化呈现

1. TCGA数据获取与准备 第一次接触TCGA数据库时&#xff0c;我被它庞大的数据量震撼到了。作为癌症基因组图谱计划&#xff0c;TCGA收录了33种癌症类型、超过2万例患者的基因组数据。对于肝癌(LIHC)研究来说&#xff0c;这里简直就是一座金矿。 进入TCGA官网后&#xff0c;你会…...

3步搞定B站4K视频下载:开源工具bilibili-downloader终极指南

3步搞定B站4K视频下载&#xff1a;开源工具bilibili-downloader终极指南 【免费下载链接】bilibili-downloader B站视频下载&#xff0c;支持下载大会员清晰度4K&#xff0c;持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 想要免费下载…...

Qwen3.5-2B图文理解实战:上传建筑平面图,自动标注房间功能与面积

Qwen3.5-2B图文理解实战&#xff1a;上传建筑平面图&#xff0c;自动标注房间功能与面积 1. 引言&#xff1a;当AI遇见建筑设计 想象一下这样的场景&#xff1a;你刚拿到一张复杂的建筑平面图&#xff0c;需要快速标注每个房间的功能和面积。传统方法可能需要花费数小时手动测…...

零克云联合创始人占冰强:如何借助OpenClaw为企业AI变革提速!

3月28日&#xff0c;由MoltBank&聚鲸科技、AIGCLink联合主办的“赢在OpenClaw北京站”闭门分享会&#xff0c;在北京成功举行。本次活动聚焦AI Agent落地、AI商业场景落地、AI法律合规边界等关键议题。在演讲环节&#xff0c;零克云联合创始人兼COO占冰强分享了&#xff1a…...

三步掌握BilibiliDown:打造你的B站视频离线收藏库

三步掌握BilibiliDown&#xff1a;打造你的B站视频离线收藏库 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/bi/Bi…...

SuGaR与NeRF对比分析:为什么高斯泼溅是未来趋势

SuGaR与NeRF对比分析&#xff1a;为什么高斯泼溅是未来趋势 【免费下载链接】SuGaR [CVPR 2024] Official PyTorch implementation of SuGaR: Surface-Aligned Gaussian Splatting for Efficient 3D Mesh Reconstruction and High-Quality Mesh Rendering 项目地址: https://…...

微软 Copilot 条款更新:功能拓展与合规管控并行

微软 Copilot 条款更新&#xff1a;明确适用范围与新增功能规则微软 Copilot 此次更新使用条款&#xff0c;明确了条款适用于某些 Copilot 服务和体验的具体情形。新增了关于 Copilot Actions、Copilot Labs 和购物体验的条款&#xff0c;还修订了行为准则&#xff0c;清晰界定…...

ALM扩展开发教程:如何为TypeScript IDE创建自定义插件

ALM扩展开发教程&#xff1a;如何为TypeScript IDE创建自定义插件 【免费下载链接】alm :rose: A :cloud: ready IDE just for TypeScript :heart: 项目地址: https://gitcode.com/gh_mirrors/al/alm ALM是一款专为TypeScript和JavaScript设计的云端IDE&#xff0c;为开…...