vue中axios防止多次触发终止多次请求的示例代码(防抖)


Posted in Javascript onFebruary 16, 2020

需求

例如在搜索框中,并不是你输入一个字就需要渲染一次数据,而是取最后一次的输入内容进行搜索。

连续按下 AAAAA ,只取最后一次按下时搜索框的内容(即:AAAAA)进行搜索。 而不是搜索跟 A(第一次按下),AA(第二次按下),AAA相关联的内容

本文例子:  检测用户输入的值,监测这个值,然后根据值调用接口查询结果

代码:

<template>
  <input type="text" v-model="message">
<template>
<script>
import axios from "axios";
export default {
  data(){
    return{
      message:''
  },
  watch : {
    message(newVal){     
      var that = this;
      // 取消上一次请求
      this.cancelRequest();
      axios.get('/api/searchList?cityId=10&kw='+ newVal, {       
        cancelToken: new axios.CancelToken(function(c) {
          that.source = c;
        })
      }).then((res) => {
        // 在这里处理得到的数据
        //数据逻辑处理
      }).catch((err) => {
        if (axios.isCancel(err)) {
          console.log('Rquest canceled', err.message); //请求如果被取消,这里是返回取消的message
        } else {
          //handle error
          console.log(err);
        }
      })    
    }
  },
  methods: {
     cancelRequest(){
      if(typeof this.source ==='function'){
        this.source('终止请求')
      }
    }
  }
}
</script>

 其他做法:

   可以使用 clearTimeout()   setTimeout()  截取,设置一定时常请求一次

总结

以上所述是小编给大家介绍的vue中axios防止多次触发终止多次请求的实现方法(防抖),希望对大家有所帮助!

Javascript 相关文章推荐
Prototype 学习 工具函数学习($A方法)
Jul 12 Javascript
JQuery制作的放大效果的popup对话框(未添加任何jquery plugin)分享
Apr 28 Javascript
JQuery获取或设置ckeditor的数据(示例代码)
Nov 15 Javascript
JS关键字球状旋转效果的实例代码
Nov 29 Javascript
jQuery中extend函数详解
Jul 13 Javascript
JavaScript表单验证实例之验证表单项是否为空
Jan 10 Javascript
JavaScript 浏览器兼容性总结及常用浏览器兼容性分析
Mar 30 Javascript
javascript 跨域问题以及解决办法
Jul 17 Javascript
Vue.js实现列表清单的操作方法
Nov 15 Javascript
vue实现搜索过滤效果
May 28 Javascript
vue实现绑定事件的方法实例代码详解
Jun 20 Javascript
vue通过接口直接下载java生成好的Excel表格案例
Oct 26 Javascript
Vue简单封装axios之解决post请求后端接收不到参数问题
Feb 16 #Javascript
封装一下vue中的axios示例代码详解
Feb 16 #Javascript
Vue.js的模板语法详解
Feb 16 #Javascript
Vue两个版本的区别和使用方法(更深层次了解)
Feb 16 #Javascript
vue数据响应式原理知识点总结
Feb 16 #Javascript
vue中利用iscroll.js解决pc端滚动问题
Feb 15 #Javascript
JS localStorage存储对象,sessionStorage存储数组对象操作示例
Feb 15 #Javascript
You might like
PHP脚本的10个技巧(2)
2006/10/09 PHP
PHP动态页生成静态页的3种常用方法
2014/11/13 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
2019/05/09 PHP
jquery 表单取值常用代码
2009/12/22 Javascript
Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)
2010/07/11 Javascript
在网站上应该用的30个jQuery插件整理
2011/11/03 Javascript
js日期、星座的级联显示代码
2014/01/23 Javascript
当某个文本框成为焦点时即清除文本框内容
2014/04/28 Javascript
javascript操作ul中li的方法
2015/05/14 Javascript
jQuery插件FusionCharts绘制2D双折线图效果示例【附demo源码】
2017/04/14 jQuery
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
Vue组件通信实践记录(推荐)
2017/08/15 Javascript
微信小程序实现的自定义分享功能示例
2019/02/12 Javascript
Nodejs对postgresql基本操作的封装方法
2019/02/20 NodeJs
vue自定义js图片碎片轮播图切换效果的实现代码
2019/04/28 Javascript
微信小程序导入Vant报错VM292:1 thirdScriptError的解决方法
2019/08/01 Javascript
解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题
2020/07/24 Javascript
[56:42]完美世界DOTA2联赛循环赛 Matador vs Forest 第二场 11.06
2020/11/06 DOTA
python实现的解析crontab配置文件代码
2014/06/30 Python
详解在Python的Django框架中创建模板库的方法
2015/07/20 Python
Python 中urls.py:URL dispatcher(路由配置文件)详解
2017/03/24 Python
使用python获取csv文本的某行或某列数据的实例
2018/04/03 Python
使用 Python 实现微信群友统计器的思路详解
2018/09/26 Python
pandas把所有大于0的数设置为1的方法
2019/01/26 Python
用Python爬取QQ音乐评论并制成词云图的实例
2019/08/24 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
2019/12/10 Python
Python如何实现小程序 无限求和平均
2020/02/18 Python
python3爬虫中多线程进行解锁操作实例
2020/11/25 Python
德国家具在线:Fashion For Home
2017/03/11 全球购物
运输企业安全生产责任书
2014/07/28 职场文书
涉及车辆房产分割的离婚协议书范文
2014/10/12 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
财务经理岗位职责范本
2015/04/08 职场文书
2015年食品安全宣传周活动总结
2015/07/09 职场文书
学习心理学心得体会
2016/01/22 职场文书
2016年“12.4”法制宣传日活动总结
2016/04/01 职场文书