vue输入框使用模糊搜索功能的实现代码


Posted in Javascript onMay 26, 2020

实现原理:

利用js的 indexOf 方法可返回某个指定的字符串值在字符串中首次出现的位置。

模板中的代码

<div class="search">
<!--输入框使用的是vant的输入框组件-->
	<van-search
  @input="autoSearch"
  v-model="value"
  placeholder="请输入搜索关键词"
  style="width:90%; display:inline-block;"
 />
  <span>搜索</span>
 </div>
<!--展示数据-->
<ul
	v-for="(item) in allArea"
 :key="item.communityId"
 >
 <li v-if="allNewArea.length != 0">{{ item.communityName }}</li>
  <li v-else>{{ item.communityName }}</li>
</ul>

js代码

getAreaDetail () { // 获取数据
  this.$http({
  method: 'post',
  url: '/appProperty/getCommunity',
  }).then(res => {
  this.allArea = res.data
  this.allNewArea = res.data
  })
 },
 autoSearch () { // 模糊搜索加节流(500ms触发一次)
  var allowPass = true
  if (!allowPass) {
  return
  }
  setTimeout(() => {
  allowPass = false
  this.allArea = [];
  this.allNewArea.filter(item => {
   if (item.communityName.indexOf(this.value) !== -1) { // 此处也可使用js的 search 方法实现indexOf 一样效果
   this.allArea.push(item);
   }
  })
  }, 500);
 },

拓展

节流函数 节省流量节省内存性能的一种函数,可以理解为是一种性能优化方案

//首先定义一个全局变量 当浏览器窗口大小发生变化也就是重新计算窗口大小的时候触发
 var canRun = true;
 window.onresize = function () {
  if (!canRun) {
  return
  }
  canRun = false//设置一个定时器进行轮询操作
  setTimeout(function () {//这是要做的事情
  console.log("函数节流")//最后记得重新赋值true继续让他取反
  canRun = true//每隔1000毫秒也就是1秒钟就执行一次
  }, 1000)
 }

防抖函数 当事件触发完成之后再延迟触发,并且只触发一次;如果在触发完成之前再次触发,则会再次刷新延迟

//定义方法即要做的事情
 function fun(){
 console.log('onresize')
 }
//定义事件触发要执行的方法,两个参数分别是传入的要做的事情和定时器的毫秒数
function debounce (fn, delay) {//定义一个变量作为等会清除对象
 var handle;
//这里用到了闭包,一个函数里面return另一个函数,变量相互牵引导致垃圾回收机制不会销毁handle变量
 return function () {


//在这里一定要清除前面的定时器,然后创建一个新的定时器
 clearTimeout(handle) 


//最后这个定时器只会执行一次也就是事件触发完成之后延迟500毫秒再触发(这里的变量赋值是跟定时器建立连接,进行地址赋值,一定要重新赋值给handle 
 handle = setTimeout(function () {
  fn()
 }, delay)
 }
}
//给浏览器添加监听事件resize
window.addEventListener('resize', debounce(fun, 500));

两者区别

  • 防抖函数和节流函数都是用来提升性能优化及用户体验的一种方案;
  • 防抖函数只会执行一次,且是最后触发的那一次,而节流函数会规律性的执行多次;

总结

到此这篇关于vue输入框使用模糊搜索功能的实现代码的文章就介绍到这了,更多相关vue输入框模糊搜索内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
jQuery入门第一课 jQuery选择符
Mar 14 Javascript
JavaScript 函数惰性载入的实现及其优点介绍
Aug 12 Javascript
超链接的禁用属性Disabled使用示例
Jul 31 Javascript
javascript中局部变量和全局变量的区别详解
Feb 27 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
Aug 24 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
Dec 10 Javascript
使用js获取伪元素的content实例
Oct 24 Javascript
Bootstrap 树控件使用经验分享(图文解说)
Nov 06 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
Aug 14 Javascript
wx-charts 微信小程序图表插件的具体使用
Aug 18 Javascript
vuejs+element UI table表格中实现禁用部分复选框的方法
Sep 20 Javascript
vue根据条件不同显示不同按钮的操作
Aug 04 Javascript
jQuery弹框插件使用方法详解
May 26 #jQuery
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
May 26 #Javascript
微信小程序实现弹框效果
May 26 #Javascript
微信小程序自定义弹出层效果
May 26 #Javascript
详解JSON.stringify()的5个秘密特性
May 26 #Javascript
微信小程序实现简单文字跑马灯
May 26 #Javascript
微信小程序实现带放大效果的轮播图
May 26 #Javascript
You might like
异世界新番又来了,同样是从零开始,男主的年龄降到5岁
2020/04/09 日漫
这东西价格,可以买几台TECSUN S-2000
2021/03/02 无线电
使用dump函数,给php加断点测试
2013/06/25 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
php抓取网站图片并保存的实现方法
2015/10/29 PHP
DOM_window对象属性之--clipboardData对象操作代码
2011/02/03 Javascript
JS获取select-option-text_value的方法
2013/12/26 Javascript
node.js中的fs.fchmodSync方法使用说明
2014/12/16 Javascript
JS实现仿google、百度搜索框输入信息智能提示的实现方法
2015/04/20 Javascript
Javascript 是你的高阶函数(高级应用)
2015/06/15 Javascript
Js+php实现异步拖拽上传文件
2015/06/23 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
浅谈javascript的Array.prototype.slice.call
2015/08/31 Javascript
js如何打印object对象
2015/10/16 Javascript
JS实现的表格行鼠标点击高亮效果代码
2015/11/27 Javascript
Javascript之BOM(window对象)详解
2016/05/25 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
2016/08/24 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
JavaScript生成.xls文件的代码
2016/12/22 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
python进阶教程之循环对象
2014/08/30 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
2018/10/30 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
Django外键(ForeignKey)操作以及related_name的作用详解
2019/07/29 Python
python实现桌面托盘气泡提示
2019/07/29 Python
python变量的作用域是什么
2020/05/26 Python
python的help函数如何使用
2020/06/11 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
css3 伪类选择器快速复习小结
2019/09/10 HTML / CSS
HTML5实现Notification API桌面通知功能
2016/03/02 HTML / CSS
来自全球大都市的高级街头服饰:Pegador
2018/01/03 全球购物
Brasty波兰:香水、化妆品、手表网上商店
2019/04/15 全球购物
银行内勤岗位职责
2014/04/09 职场文书
2014年机关党建工作总结
2014/11/11 职场文书
2015元旦晚会主持词(开场白+结束语)
2014/12/14 职场文书
2015年学校工作总结范文
2015/04/20 职场文书