vue输入节流,避免实时请求接口的实例代码


Posted in Javascript onOctober 30, 2019

在做搜索的时候,当搜索页面只有一个输入框、没有确定按钮的时候,只能在用户输入时请求服务端,查询数据。这样会导致频繁的发送请求,造成服务端压力。

解决这个问题,可以使用vue做输入节流。

1、创建一个工具类,debounce.js

/***
 * @param func 输入完成的回调函数
 * @param delay 延迟时间
 */
export function debounce(func, delay) {
 let timer
 return (...args) => {
  if (timer) {
   clearTimeout(timer)
  }
  timer = setTimeout(() => {
   func.apply(this, args)
  }, delay)
 }
}

2、在搜索页面使用

<template>
 <div class="xn-container">
  <input type="text" class="text-input" v-model="search">
 </div>
</template>

<script>
 import {debounce} from '../utils/debounce'
 export default {
  name: 'HelloWorld',
  data () {
   return {
    search: ''
   }
  },
  created() {
   this.$watch('search', debounce((newQuery) => {
    // newQuery为输入的值
    console.log(newQuery)
   }, 200))
  }
 }
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
 .text-input {
  display: block;
  width: 100%;
  height: 44px;
  border: 1px solid #d5d8df;
 }
</style>

以上这篇vue输入节流,避免实时请求接口的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript中常见的校验如域名、手机、邮箱等等
Jan 02 Javascript
JavaScript基本数据类型及值类型和引用类型
Aug 25 Javascript
Javascript之Number对象介绍
Jun 07 Javascript
JS实现搜索框文字可删除功能
Dec 28 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
Mar 28 Javascript
jQuery Validate插件ajax方式验证输入值的实例
Dec 21 jQuery
vue使用$emit时,父组件无法监听到子组件的事件实例
Feb 26 Javascript
Vue实现自定义下拉菜单功能
Jul 16 Javascript
js正则表达式校验指定字符串的方法
Jul 23 Javascript
angularJs利用$scope处理升降序的方法
Oct 08 Javascript
基于Vue的商品主图放大镜方案详解
Sep 19 Javascript
vue 使用饿了么UI仿写teambition的筛选功能
Mar 01 Vue.js
vue 解决form表单提交但不跳转页面的问题
Oct 30 #Javascript
解决在Vue中使用axios用form表单出现的问题
Oct 30 #Javascript
vue路由 遍历生成复数router-link的例子
Oct 30 #Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
Oct 30 #Javascript
vue遍历生成的输入框 绑定及修改值示例
Oct 30 #Javascript
微信小程序基于高德地图查找位置并显示文字
Oct 30 #Javascript
vue 实现cli3.0中使用proxy进行代理转发
Oct 30 #Javascript
You might like
《忧国的莫里亚蒂》先导宣传图与STAFF公开
2020/03/04 日漫
PHP 读取Postgresql中的数组
2013/04/14 PHP
检查用户名是否已在mysql中存在的php写法
2014/01/20 PHP
PHP输入输出流学习笔记
2015/05/12 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
2015/08/23 PHP
PHP语言对接抖音快手小红书视频/图片去水印API接口源码
2020/08/11 PHP
JS 自定义带默认值的函数
2011/07/21 Javascript
window.parent与window.openner区别介绍
2012/04/12 Javascript
setInterval,setTimeout与jquery混用的问题
2013/04/08 Javascript
javascript正则表达式中的replace方法详解
2015/04/20 Javascript
JavaScript中的定时器之Item23的合理使用
2015/10/30 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
2020/08/27 Javascript
浅谈String.valueOf()方法的使用
2016/06/06 Javascript
jquery实现表单获取短信验证码代码
2017/03/13 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
vue路由前进后退动画效果的实现代码
2018/12/10 Javascript
webpack打包html里面img后src为“[object Module]”问题
2019/12/22 Javascript
Vue页面渲染中key的应用实例教程
2021/01/12 Vue.js
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
[01:25:33]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第二场 12.20
2020/12/23 DOTA
Python多线程实例教程
2014/09/06 Python
Python中一些自然语言工具的使用的入门教程
2015/04/13 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
2020/01/02 Python
python集成开发环境配置(pycharm)
2020/02/14 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
django创建css文件夹的具体方法
2020/07/31 Python
Python基于Faker假数据构造库
2020/11/30 Python
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
小学庆六一活动方案
2014/02/28 职场文书
债务纠纷委托书
2014/08/30 职场文书
母亲节寄语大全
2015/02/27 职场文书
亮剑观后感300字
2015/06/05 职场文书
互联网创业商业模式以及赚钱法则有哪些?
2019/10/12 职场文书
MySQL慢查询优化解决问题
2022/03/17 MySQL
Dashboard管理Kubernetes集群与API访问配置
2022/04/01 Servers