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 相关文章推荐
phpwind放自动注册方法
Dec 02 Javascript
asp javascript 实现关闭窗口时保存数据的办法
Nov 24 Javascript
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
Jul 17 Javascript
Javascript中判断变量是数组还是对象(array还是object)
Aug 14 Javascript
JavaScript黑洞数字之运算路线查找算法(递归算法)实例
Jan 28 Javascript
js获取页面及个元素高度、宽度的代码
Apr 26 Javascript
jQuery实现图像旋转动画效果
May 29 Javascript
Angular2库初探
Mar 01 Javascript
详解AngularJS 模块化
Jun 14 Javascript
VSCode 配置React Native开发环境的方法
Dec 27 Javascript
vue中slot(插槽)的介绍与使用
Nov 12 Javascript
Vue filter 过滤器、以及在table中的使用介绍
Sep 07 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
php版微信自定义回复功能示例
2016/12/05 PHP
又一个图片自动缩小的JS代码
2007/03/10 Javascript
在IE中调用javascript打开Excel的代码(downmoon原作)
2007/04/02 Javascript
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
为Extjs加加速(javascript加速)
2010/08/19 Javascript
JQuery操作tr和td内容的方法实例
2013/03/06 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
Vue.js 单页面多路由区域操作的实例详解
2017/07/17 Javascript
温故知新——JavaScript中的字符串连接问题最全总结(推荐)
2017/08/21 Javascript
详解vue-router 命名路由和命名视图
2018/06/01 Javascript
详解javascript appendChild()的完整功能
2018/08/18 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
2019/03/29 Javascript
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
Layui弹出层 加载 做编辑页面的方法
2019/09/16 Javascript
Python3.2中Print函数用法实例详解
2015/05/19 Python
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
Python目录和文件处理总结详解
2019/09/02 Python
关于python中plt.hist参数的使用详解
2019/11/28 Python
解决Numpy中sum函数求和结果维度的问题
2019/12/06 Python
使用matlab 判断两个矩阵是否相等的实例
2020/05/11 Python
浅谈CSS3动画的回调处理
2016/07/21 HTML / CSS
Ted Baker英国官网:男士和女士服装及配件
2017/03/13 全球购物
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
四年的大学生生活自我评价
2013/12/09 职场文书
庆八一活动方案
2014/01/25 职场文书
总经理助理的职责
2014/03/14 职场文书
三八妇女节演讲稿
2014/05/27 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
公务员个人总结
2015/02/12 职场文书
安全员岗位职责范本
2015/04/11 职场文书
爱心募捐通知范文
2015/04/27 职场文书
2015年文秘个人工作总结
2015/10/14 职场文书
商业计划书之服装
2019/09/09 职场文书
Android自定义双向滑动控件
2022/04/19 Java/Android
Docker部署Mysql8的实现步骤
2022/07/07 Servers