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 相关文章推荐
js类的静态属性和实例属性的理解
Oct 01 Javascript
JS的Document属性和方法小结
Sep 17 Javascript
jQuery的显示和隐藏方法与css隐藏的样式对比
Oct 18 Javascript
js对文章内容进行分页示例代码
Mar 05 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
Jun 05 Javascript
浅析Node.js中的内存泄漏问题
Jun 23 Javascript
微信小程序入门教程
Nov 18 Javascript
微信小程序之picker日期和时间选择器
Feb 09 Javascript
Vue2路由动画效果的实现代码
Jul 10 Javascript
深入理解Vue.js源码之事件机制
Sep 27 Javascript
vue 实现类似淘宝星级评分的示例
Mar 01 Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
Nov 06 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上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
简单PHP会话(session)说明介绍
2016/08/21 PHP
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
javascript学习笔记(十一) 正则表达式介绍
2012/06/20 Javascript
js判断屏幕分辨率的代码
2013/07/16 Javascript
JavaScript中的分号插入机制详细介绍
2015/02/11 Javascript
jQuery多条件筛选如何实现
2015/11/04 Javascript
跟我学习javascript解决异步编程异常方案
2015/11/23 Javascript
理解js回收机制通俗易懂版
2016/02/29 Javascript
Vue.js实现拖放效果的实例
2016/09/30 Javascript
原生的强大DOM选择器querySelector介绍
2016/12/21 Javascript
bootstrap下拉菜单使用方法解析
2017/01/13 Javascript
详解js的视频和音频采集
2018/08/09 Javascript
vue学习之Vue-Router用法实例分析
2020/01/06 Javascript
Python中__init__和__new__的区别详解
2014/07/09 Python
Flask框架实现给视图函数增加装饰器操作示例
2018/07/16 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
2018/08/03 Python
Win10环境中如何实现python2和python3并存
2020/07/20 Python
python绘制雷达图实例讲解
2021/01/03 Python
10个顶级Python实用库推荐
2021/03/04 Python
给国外客户的邀请函
2014/01/30 职场文书
二年级语文教学反思
2014/02/02 职场文书
一月红领巾广播稿
2014/02/11 职场文书
大学生会计职业生涯规划范文
2014/02/28 职场文书
学校班班通实施方案
2014/06/11 职场文书
女生节标语
2014/06/26 职场文书
环境工程专业毕业生求职信
2014/09/30 职场文书
公安纪律作风整顿剖析材料
2014/10/10 职场文书
家长给老师的感谢信
2015/01/20 职场文书
2015年优质护理服务工作总结
2015/04/08 职场文书
服装店员工管理制度
2015/08/07 职场文书
大学生党课感想
2015/08/11 职场文书
PostgreSQL存储过程实用脚本(二):创建函数入门
2021/04/05 PostgreSQL
详解MySQL的Seconds_Behind_Master
2021/05/18 MySQL
Android自定义ScrollView实现阻尼回弹
2022/04/01 Java/Android
mybatis-plus模糊查询指定字段
2022/04/28 Java/Android