如何在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中实现一个远程搜索功能相关推荐

  1. android中的后退功能,如何在Android应用中实现一个返回键功能

    如何在Android应用中实现一个返回键功能 发布时间:2020-11-23 16:28:56 来源:亿速云 阅读:89 作者:Leah 今天就跟大家聊聊有关如何在Android应用中实现一个返回键功 ...

  2. 禁用删除键退回历史记录_如何在Windows 8中删除或禁用搜索超级按钮历史记录

    禁用删除键退回历史记录 When you use the Search Charm in Windows 8 it remembers everything you search for, which ...

  3. sql server 数组_如何在SQL Server中实现类似数组的功能

    sql server 数组 介绍 (Introduction) I was training some Oracle DBAs in T-SQL and they asked me how to cr ...

  4. element标签弹窗_如何在element plus中实现不同弹窗传值

    工具 HBuilderXGitnpm浏览器技术 Vue3Element PlusJavaScript在element plus组件中,弹窗el-dialog可以用来输入数据,还可以展示数据.如果在一个 ...

  5. 多线程计算多分批计算_如何在Excel 2013中更改自动计算和多线程功能

    多线程计算多分批计算 By default, Excel recalculates all the formulas in your worksheet automatically when you ...

  6. 谷歌浏览器的翻译功能在哪_如何在Google表格中使用AND和OR功能

    谷歌浏览器的翻译功能在哪 If you've ever wanted to check whether data from your Google Sheets spreadsheet meets c ...

  7. android 工具栏沉浸 下拉,如何在Android应用中实现一个沉浸式状态栏效果

    如何在Android应用中实现一个沉浸式状态栏效果 发布时间:2020-12-08 17:04:42 来源:亿速云 阅读:151 作者:Leah 这篇文章将为大家详细讲解有关如何在Android应用中 ...

  8. 如何在R代码中找到一个值的行号

    如何在R代码中找到一个值的行号? 例如: 在以下一组值中,如何在第4列中找到特定值的行号? 如何使用R代码命令找到列4中的值"1578"的行号. > mydata_2sex ...

  9. 如何在React Native中写一个自定义模块

    前言 在 React Native 项目中可以看到 node_modules 文件夹,这是存放 node 模块的地方,Node.js 的包管理器 npm 是全球最大的开源库生态系统.提到npm,一般指 ...

最新文章

  1. linux c 内存分配函数
  2. 每日一皮:这门垫,回家保准踩一脚!
  3. 利用ajax技术 实现用户注册。
  4. PyPy为什么能让Python比C还快?一文了解内在机制
  5. requirejs学习之-- 初始化(一)
  6. crm开源系统 tp框架_八个开源的 Spring Boot 前后端分离项目,一定要收藏!
  7. php扑克牌排序,PHP实现判断扑克牌5张连续
  8. vue中v-show指令的使用之Vue知识点归纳(五)
  9. 深度学习 3 循环神经网络 RNN Recurrent Neural Networks
  10. 并发高?可能是编译优化引发有序性问题
  11. 中流科技联手RedHat建立开放SOA解决方案中心
  12. (个人)Linux基本指令收集
  13. 【CCNA第二天】路由器密码破解及恢复
  14. android系统黑点bug,老外实测“小黑点”死机短信:iPhone安卓都中招 解决方法很简单...
  15. Source Insight4.0的在整个工程中查找内容
  16. 【Agni-s Philosophy】使用的图形技术解说(后篇)Volume渲染和粒子处理
  17. Java中的控制(耦合)反转
  18. 【WSN】基于WSN下的多目标跟踪定位附matlab代码
  19. 推荐一个在线ide的网站
  20. 利用Python语言编程,完成猜数游戏,系统随机产生一个1到100的数字num1,用户输入一个数字guess,如果没有猜对,根据系统给出的提示重新猜数,直到才对为止。

热门文章

  1. android 内凹的圆角,css实现内凹圆角,利用圆角反向进行(转)
  2. git+repo 代码提交
  3. (组合数学笔记)Pólya计数理论_Part.3_置换群及其性质
  4. Windows下编写的脚本文件无法在Linux上运行的问题
  5. poj 3026 BorgMaze 最小生成树Kruskal、Prim(Prim VS报错待解决
  6. 剑指offer06:从尾到头打印链表
  7. Spark SQL中的DataFrame
  8. jQuery学习之二---jq核心
  9. 什么镜头最适合拍风景_哪种镜头最适合你的街头摄影?
  10. android内存置换,课内资源 - 基于Android实现的页面置换模拟