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 相关文章推荐
JavaScript中的History历史对象
Jan 16 Javascript
jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
Jan 23 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
Apr 16 Javascript
封装好的一个万能检测表单的方法
Jan 21 Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
Mar 13 Javascript
javascript日期格式化方法汇总
Oct 04 Javascript
原生js jquery ajax请求以及jsonp的调用方法
Aug 04 jQuery
移动端触摸滑动插件swiper使用方法详解
Aug 11 Javascript
React操作真实DOM实现动态吸底部的示例
Oct 23 Javascript
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
Mar 06 Javascript
微信小程序使用gitee进行版本管理
Sep 20 Javascript
element-ui点击查看大图的方法示例
Dec 14 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
比特率,大家看看这个就不用收音机音质去比MP3音质了
2021/03/01 无线电
PHP脚本的10个技巧(7)
2006/10/09 PHP
php设计模式 Command(命令模式)
2011/06/26 PHP
php实现Session存储到Redis
2015/11/11 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
2016/05/06 PHP
php模式设计之观察者模式应用实例分析
2019/09/25 PHP
DEFER怎么用?
2006/07/01 Javascript
动态修改DOM 里面的 id 属性的弊端分析
2008/09/03 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
js分页代码分享
2014/04/28 Javascript
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
使用javascript实现雪花飘落的效果
2015/01/13 Javascript
JSON字符串转JSON对象
2015/07/31 Javascript
ClearTimeout消除闪动实例代码
2016/02/29 Javascript
AngularJS入门教程之AngularJS指令
2016/04/18 Javascript
JS实现登录页面记住密码和enter键登录方法推荐
2016/05/10 Javascript
限制只能输入数字的实现代码
2016/05/16 Javascript
easy ui datagrid 从编辑框中获取值的方法
2017/02/22 Javascript
为你的微信小程序体积瘦身详解
2017/05/20 Javascript
phantomjs导出html到pdf的方法总结
2017/10/19 Javascript
vue2配置scss的方法步骤
2019/06/06 Javascript
Python实现代码统计工具(终极篇)
2016/07/04 Python
Python常用内置模块之xml模块(详解)
2017/05/23 Python
Python线程创建和终止实例代码
2018/01/20 Python
Python网络爬虫之爬取微博热搜
2019/04/18 Python
python实现代码统计程序
2019/09/19 Python
如何基于Python批量下载音乐
2019/11/11 Python
Python操作Jira库常用方法解析
2020/04/10 Python
利用Python函数实现一个万历表完整示例
2021/01/23 Python
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
介绍一下Java中标识符的命名规则
2014/02/03 面试题
《画家乡》教学反思
2014/04/22 职场文书
优秀学生干部个人事迹材料
2014/06/02 职场文书
婚宴祝酒词大全
2015/08/10 职场文书
golang 实现时间戳和时间的转化
2021/05/07 Golang
Redis实现订单自动过期功能的示例代码
2021/05/08 Redis