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 相关文章推荐
jQuery学习7 操作JavaScript对象和集合的函数
Feb 07 Javascript
JQuery each()函数如何优化循环DOM结构的性能
Dec 10 Javascript
jquery 简单应用示例总结
Aug 09 Javascript
JS连连看源码完美注释版(推荐)
Dec 09 Javascript
JavaScript字符串删除重复字符的方法
Dec 25 Javascript
vue如何实现observer和watcher源码解析
Mar 09 Javascript
vue组件中使用iframe元素的示例代码
Dec 13 Javascript
Nuxt.js之自动路由原理的实现方法
Nov 21 Javascript
JS监听滚动和id自动定位滚动
Dec 18 Javascript
微信小程序实现菜单左右联动
May 19 Javascript
利用JS判断元素是否为数组的方法示例
Jan 08 Javascript
JavaScript选择器函数querySelector和querySelectorAll
Nov 27 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应用程序来获取Web服务器的状态信息
2006/10/09 PHP
php对称加密算法示例
2014/05/07 PHP
PHP中Enum(枚举)用法实例详解
2015/12/07 PHP
php实现的XML操作(读取)封装类完整实例
2017/02/23 PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
2018/04/04 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
PHP的Trait机制原理与用法分析
2019/10/18 PHP
学习ExtJS border布局
2009/10/08 Javascript
javascript 最常用的10个自定义函数[推荐]
2009/12/26 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
2013/03/31 Javascript
在AngularJS框架中处理数据建模的方式解析
2016/03/05 Javascript
微信小程序实战之上拉(分页加载)效果(2)
2017/04/17 Javascript
深入浅析javascript继承体系
2017/10/23 Javascript
Vue 与 Vuex 的第一次接触遇到的坑
2018/08/16 Javascript
iview同时验证多个表单问题总结
2018/09/29 Javascript
基于layui实现高级搜索(筛选)功能
2019/07/26 Javascript
js实现3D旋转效果
2020/08/18 Javascript
Python strip lstrip rstrip使用方法
2008/09/06 Python
跟老齐学Python之for循环语句
2014/10/02 Python
python通过smpt发送邮件的方法
2015/04/30 Python
在python里协程使用同步锁Lock的实例
2019/02/19 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
2020/03/09 Python
python中@contextmanager实例用法
2021/02/07 Python
只要五步 就可以用HTML5/CSS3快速制作便签贴特效(图)
2012/06/04 HTML / CSS
html5 移动端视频video的android兼容(去除播放控件、全屏)
2020/03/26 HTML / CSS
本科生职业生涯规划书范文
2014/01/21 职场文书
《开国大典》教学反思
2014/04/19 职场文书
公司爱心捐款倡议书
2014/05/14 职场文书
环保标语大全
2014/06/12 职场文书
公司慰问信范文
2015/03/23 职场文书
三好学生主要事迹材料
2015/11/03 职场文书
2016年最美孝心少年事迹材料
2016/02/26 职场文书
导游词之神仙居景区
2019/11/15 职场文书
简单总结SpringMVC拦截器的使用方法
2021/06/28 Java/Android
详解MySql中InnoDB存储引擎中的各种锁
2022/02/12 MySQL
「回转企鹅罐」10周年纪念展「輪るピングドラム展」海报公开
2022/03/22 日漫