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 相关文章推荐
Javascript开发包大全整理
Dec 22 Javascript
对于Form表单reset方法的新认识
Mar 05 Javascript
js插件YprogressBar实现漂亮的进度条效果
Apr 20 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
Jan 05 Javascript
深入理解JQuery循环绑定事件
Jun 02 Javascript
JavaScript获取当前url根目录(路径)
Jun 17 Javascript
jQuery Ajax 上传文件处理方式介绍(推荐)
Jun 30 Javascript
JS实现自动阅读单词(有道单词本添加功能)
Nov 14 Javascript
微信小程序 数据封装,参数传值等经验分享
Jan 09 Javascript
JavaScript实现二维坐标点排序效果
Jul 18 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
Sep 28 Javascript
Javascript实现贪吃蛇小游戏(含详细注释)
Oct 23 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数组的概述及分类与声明代码演示
2013/02/26 PHP
PHP符合PSR编程规范的实例分享
2016/12/21 PHP
php mysql操作mysql_connect连接数据库实例详解
2016/12/26 PHP
PHP 7.0新增加的特性介绍
2017/06/08 PHP
深入理解PHP+Mysql分布式事务与解决方案
2020/12/03 PHP
javaScript同意等待代码实现心得
2011/01/01 Javascript
关于js中for in的缺陷浅析
2013/12/02 Javascript
js中function()使用方法
2013/12/24 Javascript
jQuery修改class属性和CSS样式整理
2015/01/30 Javascript
jquery控制表单输入框显示默认值的方法
2015/05/22 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
纯css下拉菜单 无需js
2016/08/15 Javascript
微信小程序页面开发注意事项整理
2017/05/18 Javascript
Javascript es7中比较实用的两个方法示例
2017/07/21 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
JS实现select选中option触发事件操作示例
2018/07/13 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
[39:32]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第二场
2014/05/23 DOTA
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
python实现360的字符显示界面
2014/02/21 Python
python生成指定尺寸缩略图的示例
2014/05/07 Python
Python中的列表生成式与生成器学习教程
2016/03/13 Python
浅谈Python中的可变对象和不可变对象
2017/07/07 Python
Django中数据库的数据关系:一对一,一对多,多对多
2018/10/21 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
Python OpenCV读取显示视频的方法示例
2020/02/20 Python
精油和天然健康美容产品:Art Naturals
2018/01/27 全球购物
介绍一下linux文件系统分配策略
2013/02/25 面试题
企业门卫岗位职责
2013/12/12 职场文书
元旦寄语大全
2014/04/10 职场文书
捐资助学倡议书
2014/04/15 职场文书
二年级小学生评语
2014/04/21 职场文书
暂住证明怎么写
2015/06/19 职场文书
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs
MySQL聚簇索引和非聚簇索引的区别详情
2022/06/14 MySQL