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 相关文章推荐
toString()一个会自动调用的方法
Feb 08 Javascript
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
Apr 07 Javascript
详解JavaScript对象类型
Jun 16 Javascript
JavaScript提高网站性能优化的建议(二)
Jul 24 Javascript
jQuery实现滚动效果
Nov 17 jQuery
JavaScript实现区块链
Mar 14 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
Sep 25 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
Oct 23 Javascript
详解 微信小程序开发框架(MINA)
May 17 Javascript
微信小程序发布新版本时自动提示用户更新的方法
Jun 07 Javascript
利用Angular7开发一个Radio组件的全过程
Jul 11 Javascript
原生js实现轮播图特效
May 04 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
数据库的日期格式转换
2006/10/09 PHP
PHP url 加密解密函数代码
2011/08/26 PHP
php实现微信发红包
2015/12/05 PHP
用 Javascript 验证表单(form)中的单选(radio)值
2009/09/08 Javascript
AngularJs定制样式插入到ueditor中的问题小结
2016/08/01 Javascript
Angularjs之filter过滤器(推荐)
2016/11/27 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
JavaScript实现自动跳转文本功能
2017/05/25 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
2017/09/19 Javascript
JQuery扩展对象方法操作示例
2018/08/21 jQuery
node.js监听文件变化的实现方法
2019/04/17 Javascript
详解vuex之store源码简单解析
2019/06/13 Javascript
策略模式实现 Vue 动态表单验证的方法
2019/09/16 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
如何在vue 中使用柱状图 并自修改配置
2021/01/21 Vue.js
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
Python中使用摄像头实现简单的延时摄影技术
2015/03/27 Python
python类和继承用法实例
2015/07/07 Python
打包发布Python模块的方法详解
2016/09/18 Python
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
python写入文件自动换行问题的方法
2019/07/05 Python
python对XML文件的操作实现代码
2020/03/27 Python
浅谈keras中的目标函数和优化函数MSE用法
2020/06/10 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
教师自我鉴定范文
2013/11/10 职场文书
技术副厂长岗位职责
2013/12/26 职场文书
中学教师管理制度
2014/01/14 职场文书
关于运动会的稿件
2014/02/02 职场文书
计算机专业求职信
2014/06/02 职场文书
领导班子整改方案和个人整改措施
2014/10/25 职场文书
中学后勤工作总结2015
2015/07/22 职场文书
新郎父亲婚礼致辞
2015/07/27 职场文书
七年级作文之下雨天
2019/12/23 职场文书
python实现剪贴板的操作
2021/07/01 Python
Java 在线考试云平台的实现
2021/11/23 Java/Android