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 相关文章推荐
JScript分割字符串示例代码
Sep 04 Javascript
动态标签 悬停效果 延迟加载示例代码
Nov 21 Javascript
js 获取浏览器版本以此来调整CSS的样式
Jun 03 Javascript
node.js中的fs.exists方法使用说明
Dec 17 Javascript
使用js画图之饼图
Jan 12 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
Jun 01 Javascript
jquery实现平滑的二级下拉菜单效果
Aug 26 Javascript
js滚动条平滑移动示例代码
Mar 29 Javascript
浅析JavaScript 箭头函数 generator Date JSON
May 23 Javascript
jQuery使用deferreds串行多个ajax请求
Aug 22 Javascript
vue.js实现仿原生ios时间选择组件实例代码
Dec 21 Javascript
Vue数字输入框组件使用方法详解
Feb 10 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进程之间实现共享内存的方法
2014/06/13 PHP
用jQuery技术实现Tab页界面之二
2009/09/21 Javascript
JS阻止用户多次提交示例代码
2014/03/26 Javascript
javascript的创建多行字符串的7种方法
2014/04/29 Javascript
基于jQuery实现表单提交验证
2014/11/24 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
2014/11/28 Javascript
对JavaScript中this指针的新理解分享
2015/01/31 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
vue2.0实战之使用vue-cli搭建项目(2)
2017/03/27 Javascript
关于vue-resource报错450的解决方案
2017/07/24 Javascript
react-navigation 如何判断用户是否登录跳转到登录页的方法
2017/12/01 Javascript
JavaScript创建对象的常用方式总结
2018/08/10 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
2018/09/27 Javascript
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
小程序封装wx.request请求并创建接口管理文件的实现
2019/04/29 Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
2019/06/10 Javascript
vue+koa2实现session、token登陆状态验证的示例
2019/08/30 Javascript
javascript sort()对数组中的元素进行排序详解
2019/10/13 Javascript
解决在Vue中使用axios用form表单出现的问题
2019/10/30 Javascript
Python实现简单的多任务mysql转xml的方法
2017/02/08 Python
Django 解决阿里云部署同步数据库报错的问题
2020/05/14 Python
利用python实现平稳时间序列的建模方式
2020/06/03 Python
python如何代码集体右移
2020/07/20 Python
使用python爬取抖音app视频的实例代码
2020/12/01 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
AHAVA美国官方网站:死海海泥护肤品牌
2016/10/18 全球购物
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
StringBuilder和String的区别
2015/05/18 面试题
HttpServlet类中的主要方法都有哪些?各自的作用是什么?
2014/03/16 面试题
广播体操比赛口号
2014/06/10 职场文书
机关干部四风问题自查报告及整改措施
2014/10/26 职场文书
2014年导购员工作总结
2014/11/18 职场文书
2015年库房工作总结
2015/04/30 职场文书
《家庭教育》读后感3篇
2019/12/18 职场文书
小程序wx.getUserProfile接口的具体使用
2021/06/02 Javascript
聊聊SpringBoot自动装配的魔力
2021/11/17 Java/Android