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 学习初步 入门教程
Mar 25 Javascript
表格单元格交错着色实现思路及代码
Apr 01 Javascript
ExtJS中设置下拉列表框不可编辑的方法
May 07 Javascript
详解Bootstrap的aria-label和aria-labelledby应用
Jan 04 Javascript
Angular 4依赖注入学习教程之简介(一)
Jun 04 Javascript
浅谈Node 调试工具入门教程
Mar 20 Javascript
React native ListView 增加顶部下拉刷新和底下点击刷新示例
Apr 27 Javascript
JavaScript常见事件对象与操作实例总结
Jan 05 Javascript
layer弹出层显示在top顶层的方法
Sep 11 Javascript
vue项目从node8.x升级到12.x后的问题解决
Oct 25 Javascript
Vue如何将页面导出成PDF文件
Aug 17 Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
Oct 12 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
excellent!――ASCII Art(由目标图象生成ascii)
2007/02/20 PHP
PHP常用开发函数解析之数组篇[未完结]
2012/07/30 PHP
round robin权重轮循算法php实现代码
2016/05/28 PHP
强制设为首页代码
2006/06/19 Javascript
Javascript 变量作用域 两个可能会被忽略的小特性
2010/03/23 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
2017/06/22 Javascript
JavaScript 跨域之POST实现方法
2018/05/07 Javascript
vue环形进度条组件实例应用
2018/10/10 Javascript
JS实现的自定义map方法示例
2019/05/17 Javascript
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
python进阶教程之词典、字典、dict
2014/08/29 Python
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
2016/04/27 Python
node.js获取参数的常用方法(总结)
2017/05/29 Python
vscode 远程调试python的方法
2017/12/01 Python
Python实现京东秒杀功能代码
2019/05/16 Python
python读取hdfs上的parquet文件方式
2020/06/06 Python
python实现mean-shift聚类算法
2020/06/10 Python
keras实现VGG16 CIFAR10数据集方式
2020/07/07 Python
PUMA澳大利亚官方网站:德国运动品牌
2018/10/19 全球购物
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
Currentbody法国:健康与美容高科技产品
2020/08/16 全球购物
如何找出EMP表里面SALARY第N高的employee
2013/12/05 面试题
vue 中 get / delete 传递数组参数方法
2021/03/23 Vue.js
美术专业学生个人自我评价
2013/09/19 职场文书
大学校园生活自我鉴定
2014/01/13 职场文书
安全标准化汇报材料
2014/02/03 职场文书
大学生职业生涯规划书参考模板
2014/03/05 职场文书
认购协议书范本
2014/04/22 职场文书
cf战队收人口号
2014/06/21 职场文书
美术教师求职信范文
2015/03/20 职场文书
幼儿园门卫安全责任书
2015/05/08 职场文书
车辆安全隐患排查制度
2015/08/05 职场文书
小学安全教育主题班会
2015/08/12 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
Ruby GDBM操作简介及数据存储原理
2022/04/19 Ruby