element 搜索匹配_如何在Element-ui中实现一个远程搜索功能
如何在Element-ui中实现一个远程搜索功能
发布时间:2021-01-29 14:50:00
来源:亿速云
阅读:87
作者:Leah
这篇文章给大家介绍如何在Element-ui中实现一个远程搜索功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
方式一
v-model="value"
filterable
remote
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
>
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
export default {
name: "app",
data() {
return {
options: [],
value: [],
loading: false,
};
},
methods: {
// 当用户输入内容开始远程搜索模糊查询的时候,会触发remoteMethod方法
remoteMethod(query) {
// 如果用户输入内容了,就发请求拿数据,远程搜索模糊查询
if (query !== "") {
this.loading = true; // 开始拿数据喽
// 这里模拟发请求,res就当成发请求返回来的数据吧。
let res = [
{
label: "孙悟空",
value: 500,
},
{
label: "孙尚香",
value: 18,
},
{
label: "沙和尚",
value: 1000,
},
{
label: "沙师弟",
value: 999,
},
];
this.loading = false // 拿到数据喽
// 然后把拿到的所有数据,首先进行一个过滤,把有关联的过滤成一个新数组给到options使用
this.options = res.filter((item)=>{
// indexOf等于0代表只要首个字匹配的,如:搜索 王 王小虎数据会被过滤出来,但是 小虎王的数据不会被过滤出来。因为indexOf等于0代表以什么开头
// return item.label.toLowerCase().indexOf(query.toLowerCase()) == 0
// indexOf大于-1代表的是,只要有这个字出现的即可,如:搜索 王 王小虎、小虎王、小王虎都会被过滤出来。因为indexOf找不到才会返回-1,
// 大于-1说明只要有就行,不论是不是开头也好,中间也好,或者结尾也好
return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1
})
} else {
this.options = [];
}
},
},
};
说实话,我个人喜欢用方式二。来人呐,上代码
方式二
v-model="state2"
:fetch-suggestions="querySearch"
placeholder="请输入内容"
:trigger-on-focus="false"
@select="handleSelect"
size="small"
>
- {{ item.value }}
export default {
name: "app",
data() {
return {
state2: "",
fruit: [
{
value: "香蕉",
price: "8.58",
},
{
value: "车厘子",
price: "39.99",
},
{
value: "核桃",
price: "26.36",
},
{
value: "芒果",
price: "15.78",
},
],
};
},
methods: {
// 第二步
// 当queryString不为空的时候,就说明用户输入内容了,我们把用户输入的内容在数据库中做对比,如果有能够模糊关联的,就直接取出
// 并返回给带搜索建议的输入框,输入框就把返回的数据以下拉框的形式呈现出来,供用户选择。
querySearch(queryString, cb) {
if (queryString != "") {
// 输入内容以后才去做模糊查询
setTimeout(() => {
let callBackArr = []; // 准备一个空数组,此数组是最终返给输入框的数组
// 这个res是发请求,从后台获取的数据
const res = [
{
value: "苹果",
price: "13.25",
},
{
value: "苹果1",
price: "13.25",
},
{
value: "苹果2",
price: "13.25",
},
{
value: "苹果3",
price: "13.25",
},
{
value: "苹果4",
price: "13.25",
},
{
value: "苹果5",
price: "13.25",
},
];
res.forEach((item) => {
// 把数据库做遍历,拿用户输入的这个字,和数据库中的每一项做对比
// if (item.value.indexOf(queryString) == 0) { // 等于0 以什么什么开头
if (item.value.indexOf(queryString) > -1) { // 大于-1,只要包含就行,不再乎位置
// 如果有具有关联性的数据
callBackArr.push(item); // 就存到callBackArr里面准备返回呈现
}
});
// 经过这么一波查询操作以后,如果这个数组还为空,说明没有查询到具有关联的数据,就直接返回给用户暂无数据
if (callBackArr.length == 0) {
cb([{ value: "暂无数据", price: "暂无数据" }]);
}
// 如果经过这一波查询操作以后,找到数据了,就把装有关联数据的数组callBackArr呈现给用户
else {
cb(callBackArr);
}
}, 1000);
}
},
// 点击谁,就把谁放进去
handleSelect(item) {
this.fruit = []
this.fruit.push(item)
},
},
};
关于如何在Element-ui中实现一个远程搜索功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
element 搜索匹配_如何在Element-ui中实现一个远程搜索功能相关推荐
- android中的后退功能,如何在Android应用中实现一个返回键功能
如何在Android应用中实现一个返回键功能 发布时间:2020-11-23 16:28:56 来源:亿速云 阅读:89 作者:Leah 今天就跟大家聊聊有关如何在Android应用中实现一个返回键功 ...
- 禁用删除键退回历史记录_如何在Windows 8中删除或禁用搜索超级按钮历史记录
禁用删除键退回历史记录 When you use the Search Charm in Windows 8 it remembers everything you search for, which ...
- sql server 数组_如何在SQL Server中实现类似数组的功能
sql server 数组 介绍 (Introduction) I was training some Oracle DBAs in T-SQL and they asked me how to cr ...
- element标签弹窗_如何在element plus中实现不同弹窗传值
工具 HBuilderXGitnpm浏览器技术 Vue3Element PlusJavaScript在element plus组件中,弹窗el-dialog可以用来输入数据,还可以展示数据.如果在一个 ...
- 多线程计算多分批计算_如何在Excel 2013中更改自动计算和多线程功能
多线程计算多分批计算 By default, Excel recalculates all the formulas in your worksheet automatically when you ...
- 谷歌浏览器的翻译功能在哪_如何在Google表格中使用AND和OR功能
谷歌浏览器的翻译功能在哪 If you've ever wanted to check whether data from your Google Sheets spreadsheet meets c ...
- android 工具栏沉浸 下拉,如何在Android应用中实现一个沉浸式状态栏效果
如何在Android应用中实现一个沉浸式状态栏效果 发布时间:2020-12-08 17:04:42 来源:亿速云 阅读:151 作者:Leah 这篇文章将为大家详细讲解有关如何在Android应用中 ...
- 如何在R代码中找到一个值的行号
如何在R代码中找到一个值的行号? 例如: 在以下一组值中,如何在第4列中找到特定值的行号? 如何使用R代码命令找到列4中的值"1578"的行号. > mydata_2sex ...
- 如何在React Native中写一个自定义模块
前言 在 React Native 项目中可以看到 node_modules 文件夹,这是存放 node 模块的地方,Node.js 的包管理器 npm 是全球最大的开源库生态系统.提到npm,一般指 ...
最新文章
- linux c 内存分配函数
- 每日一皮:这门垫,回家保准踩一脚!
- 利用ajax技术 实现用户注册。
- PyPy为什么能让Python比C还快?一文了解内在机制
- requirejs学习之-- 初始化(一)
- crm开源系统 tp框架_八个开源的 Spring Boot 前后端分离项目,一定要收藏!
- php扑克牌排序,PHP实现判断扑克牌5张连续
- vue中v-show指令的使用之Vue知识点归纳(五)
- 深度学习 3 循环神经网络 RNN Recurrent Neural Networks
- 并发高?可能是编译优化引发有序性问题
- 中流科技联手RedHat建立开放SOA解决方案中心
- (个人)Linux基本指令收集
- 【CCNA第二天】路由器密码破解及恢复
- android系统黑点bug,老外实测“小黑点”死机短信:iPhone安卓都中招 解决方法很简单...
- Source Insight4.0的在整个工程中查找内容
- 【Agni-s Philosophy】使用的图形技术解说(后篇)Volume渲染和粒子处理
- Java中的控制(耦合)反转
- 【WSN】基于WSN下的多目标跟踪定位附matlab代码
- 推荐一个在线ide的网站
- 利用Python语言编程,完成猜数游戏,系统随机产生一个1到100的数字num1,用户输入一个数字guess,如果没有猜对,根据系统给出的提示重新猜数,直到才对为止。
热门文章
- android 内凹的圆角,css实现内凹圆角,利用圆角反向进行(转)
- git+repo 代码提交
- (组合数学笔记)Pólya计数理论_Part.3_置换群及其性质
- Windows下编写的脚本文件无法在Linux上运行的问题
- poj 3026 BorgMaze 最小生成树Kruskal、Prim(Prim VS报错待解决
- 剑指offer06:从尾到头打印链表
- Spark SQL中的DataFrame
- jQuery学习之二---jq核心
- 什么镜头最适合拍风景_哪种镜头最适合你的街头摄影?
- android内存置换,课内资源 - 基于Android实现的页面置换模拟