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 相关文章推荐
Script的加载方法小结
Jan 12 Javascript
Javascript跨域请求的4种解决方式
Mar 17 Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
Apr 02 Javascript
你必须知道的Javascript知识点之&quot;this指针&quot;的应用
Apr 23 Javascript
JS冒泡事件的快速解决方法
Dec 16 Javascript
javascript使用appendChild追加节点实例
Jan 12 Javascript
jQuery子属性过滤选择器用法分析
Feb 10 Javascript
jquery判断至少有一个checkbox被选中的方法
Jun 05 Javascript
分享12个非常实用的JavaScript小技巧
May 11 Javascript
JavaScript设计模式之代理模式详解
Jun 09 Javascript
jquery在vue脚手架中的使用方式示例
Aug 29 jQuery
Vue 父子组件的数据传递、修改和更新方法
Mar 01 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之变量、常量学习笔记
2008/03/27 PHP
linux下为php添加curl扩展的方法
2011/07/29 PHP
PHP生成随机用户名和密码的实现代码
2013/02/27 PHP
PHP count_chars()函数讲解
2019/02/14 PHP
checkbox 多选框 联动实现代码
2008/10/22 Javascript
用Jquery实现可编辑表格并用AJAX提交到服务器修改数据
2009/12/27 Javascript
浅析jQuery1.8的几个小变化
2013/12/10 Javascript
什么是Node.js?Node.js详细介绍
2014/06/01 Javascript
javascript实时显示当天日期的方法
2015/05/20 Javascript
JavaScript通过事件代理高亮显示表格行的方法
2015/05/27 Javascript
jQuery焦点图切换特效代码分享
2015/09/15 Javascript
JavaScript获取服务器端时间的方法
2016/11/29 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
Bootstrap表单简单实现代码
2017/03/06 Javascript
利用jsonp与代理服务器方案解决跨域问题
2017/09/14 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
通过js示例讲解时间复杂度与空间复杂度
2019/08/06 Javascript
webpack中的模式(mode)使用详解
2020/02/20 Javascript
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
Python+tkinter使用40行代码实现计算器功能
2018/01/30 Python
Python3.6日志Logging模块简单用法示例
2018/06/14 Python
对python创建及引用动态变量名的示例讲解
2018/11/10 Python
Python字符串对象实现原理详解
2019/07/01 Python
python 实现人和电脑猜拳的示例代码
2020/03/02 Python
Django模板之基本的 for 循环 和 List内容的显示方式
2020/03/31 Python
django 外键创建注意事项说明
2020/05/20 Python
一款html5 canvas实现的图片玻璃碎片特效
2014/09/11 HTML / CSS
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
社区敬老月活动实施方案
2014/02/17 职场文书
安全生产承诺书
2014/03/26 职场文书
国旗下演讲稿
2014/05/08 职场文书
赞美老师的演讲稿
2014/05/22 职场文书
优秀少先队员主要事迹材料
2014/05/28 职场文书
会计学习心得体会
2014/09/09 职场文书
热情服务标语
2014/10/07 职场文书
数学备课组工作总结
2015/08/12 职场文书