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 参考教程
Dec 29 Javascript
node.js 一个简单的页面输出实现代码
Mar 07 Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
Nov 21 Javascript
javascript设置页面背景色及背景图片的方法
Dec 29 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
Feb 05 Javascript
Angular 根据 service 的状态更新 directive
Apr 03 Javascript
Jquery实现$.fn.extend和$.extend函数
Apr 14 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
Aug 29 Javascript
微信小程序 Storage API实例详解
Oct 02 Javascript
详解在WebStorm中添加Vue.js单文件组件的高亮及语法支持
Oct 21 Javascript
Vue全家桶实践项目总结(推荐)
Nov 04 Javascript
微信小程序页面生命周期详解
Jan 31 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
用mysql_fetch_array()获取当前行数据的方法详解
2013/06/05 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
2015/07/04 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
html页面显示年月日时分秒和星期几的两种方式
2013/08/20 Javascript
如何调试异步加载页面里包含的js文件
2014/10/30 Javascript
javascript中Object使用详解
2015/01/26 Javascript
javascript背景时钟实现方法
2015/06/18 Javascript
JavaScript实现动态删除列表框值的方法
2015/08/12 Javascript
JavaScript计划任务后台运行的方法
2015/12/18 Javascript
JavaScript制作弹出层效果
2016/12/02 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
基于JavaScript实现熔岩灯效果导航菜单
2017/01/04 Javascript
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
2019/08/20 Javascript
Javascript执行流程细节原理解析
2020/05/14 Javascript
Python实现LRU算法的2种方法
2015/06/24 Python
python数据预处理之将类别数据转换为数值的方法
2017/07/05 Python
分分钟入门python语言
2018/03/20 Python
python中subprocess批量执行linux命令
2018/04/27 Python
使用Python读取二进制文件的实例讲解
2018/07/09 Python
详解Django的model查询操作与查询性能优化
2018/10/16 Python
Django异步任务之Celery的基本使用
2019/03/23 Python
Python实现使用request模块下载图片demo示例
2019/05/24 Python
美国最大的农村生活方式零售店:Tractor Supply Company(TSC)
2017/05/15 全球购物
新加坡领先的时尚生活方式零售品牌:CHARLES & KEITH
2018/01/16 全球购物
DNA测试:Orig3n
2019/03/01 全球购物
模具专业毕业推荐信
2014/03/08 职场文书
文艺演出策划方案
2014/06/07 职场文书
班级文化建设标语
2014/06/23 职场文书
护士年终个人总结
2015/02/13 职场文书
golang 比较浮点数的大小方式
2021/05/02 Golang
PyMongo 查询数据的实现
2021/06/28 Python
Python学习之包与模块详解
2022/03/19 Python
html解决浏览器记住密码输入框的问题
2023/05/07 HTML / CSS