vue 解决异步数据更新问题


Posted in Javascript onOctober 29, 2019

问题

记录一下出现的问题, 数据翻倍

这是复现问题的代码

data() {
  return {
   space: "",
   allresult: []
  };
 },
 methods: {
  getmessage() {
   this.allresult = [];
   axios
    .get(
     "https://gist.githubusercontent.com/xiaolannuoyi/9b0defe4959e71fa97e6096cc4f82ba4/raw/4be939123d488cee7ecefc055fb5ecb2ed8d5c8d/test"
    )
    .then(data => {
     console.log(data);
     let result = data.data;
     for (let i = 0; i < result.length; i++) {
      //原因在于这里的this.Allresult
      this.allresult.push({
       id: result[i].id,
       name: result[i].name,
       age: result[i].age
      });
      
     }
      console.log('此时的this.allresult',this.allresult);
    });
  }
 },
 watch: {
  space() {
   console.log("watch");
   this.getmessage();
  }
 },
 mounted() {
  this.space = "123";
  console.log("mounted");
  this.getmessage();
 }

结果

vue 解决异步数据更新问题

此时你可以看到第二次的数据时 是 第一次的 2倍

原因

mounted 和 watch 都执行 getmessage 方法,虽然方法之前 对数据进行了清空,但是 异步请求执行的慢,

所以两次调用getmessage相当于 this.allresult = []; this.allresult = []; axios...;axios....: 这个顺序

所以才会出现上述现象

解决

1.修改this.allresult = []的位置

vue 解决异步数据更新问题

2.新建一个临时空数组

vue 解决异步数据更新问题

以上这篇vue 解决异步数据更新问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
网页自动刷新,不产生嗒嗒声的一个解决方法
Mar 27 Javascript
Javascript中的window.event.keyCode使用介绍
Apr 26 Javascript
基于jQuery实现下拉收缩(展开与折叠)特效
Dec 25 Javascript
对frameset、frame、iframe的js操作示例代码
Aug 16 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
Aug 27 Javascript
JavaScript中原型和原型链详解
Feb 11 Javascript
jquery 插件实现瀑布流图片展示实例
Apr 03 Javascript
利用JS屏蔽页面中的Enter按键提交表单的方法
Nov 25 Javascript
js实现自定义进度条效果
Mar 15 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
Aug 27 Javascript
简单了解Ajax表单序列化的实现方法
Jun 14 Javascript
uniapp实现横向滚动选择日期
Oct 21 Javascript
VUE实现强制渲染,强制更新
Oct 29 #Javascript
js实现贪吃蛇小游戏
Oct 29 #Javascript
浅谈vue异步数据影响页面渲染
Oct 29 #Javascript
详解vue中多个有顺序要求的异步操作处理
Oct 29 #Javascript
vue实现设置载入动画和初始化页面动画效果
Oct 28 #Javascript
vue设置一开始进入的页面教程
Oct 28 #Javascript
Vue调用后端java接口的实例代码
Oct 28 #Javascript
You might like
德生PL330的评价与改造
2021/03/02 无线电
下载文件的点击数回填
2006/10/09 PHP
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
2015/12/25 PHP
thinkphp3.2.3 分页代码分享
2016/07/28 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
JS动态调用方法名示例介绍
2013/12/18 Javascript
js获得网页背景色和字体色的方法
2014/03/21 Javascript
JQuery分屏指示器图片轮换效果实例
2015/05/21 Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
2016/03/30 Javascript
微信小程序 实战程序简易新闻的制作
2017/01/09 Javascript
微信小程序 获取二维码实例详解
2017/06/23 Javascript
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
AngularJs 最新验证手机号码的实例,成功测试通过
2017/11/26 Javascript
浅谈Node 异步IO和事件循环
2019/05/05 Javascript
微信小程序canvas开发水果老虎机的思路详解
2020/02/07 Javascript
JS原形与原型链深入详解
2020/05/09 Javascript
Python中的with...as用法介绍
2015/05/28 Python
python数据结构链表之单向链表(实例讲解)
2017/07/25 Python
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
Python随机函数random()使用方法小结
2018/04/29 Python
pytorch 修改预训练model实例
2020/01/18 Python
python eventlet绿化和patch原理
2020/11/21 Python
CSS3实现伪类hover离开时平滑过渡效果示例
2017/08/10 HTML / CSS
PHP数据运算类型都有哪些
2013/11/05 面试题
护理学毕业生求职信
2013/11/14 职场文书
网页美工求职信
2014/02/15 职场文书
政法干警核心价值观心得体会
2014/09/11 职场文书
党的群众路线教育实践活动总结
2014/10/30 职场文书
群众路线教育实践活动总结
2014/10/30 职场文书
劳动纠纷调解协议书格式
2014/11/30 职场文书
微信搭讪开场白
2015/05/28 职场文书
春节随笔
2015/08/15 职场文书
CSS 新特性 contain控制页面的重绘与重排问题
2021/04/30 HTML / CSS