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 相关文章推荐
JS小功能(操作Table--动态添加删除表格及数据)实现代码
Nov 28 Javascript
javascript:void(0)的问题使用探讨
Apr 10 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
Jun 16 Javascript
JS实现网页顶部向下滑出的全国城市切换导航效果
Aug 22 Javascript
JavaScript如何禁止Backspace键
Dec 02 Javascript
ng2学习笔记之bootstrap中的component使用教程
Mar 09 Javascript
分享一个精简的vue.js 图片lazyload插件实例
Mar 13 Javascript
微信小程序url与token设置详解
Sep 26 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
Nov 22 Javascript
JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例
Jan 29 Javascript
vue组件间通信六种方式(总结篇)
May 15 Javascript
JS求1到任意数之间的所有质数的方法详解
May 20 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 return语句另类用法不止是在函数中
2014/09/17 PHP
PHP静态文件生成类实例
2014/11/29 PHP
表单内同名元素的控制
2006/11/22 Javascript
jquery 图片 上一张 下一张 链接效果(续篇)
2010/04/20 Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
jQuery Ajax请求状态管理器打包
2012/05/03 Javascript
js用拖动滑块来控制图片大小的方法
2015/02/27 Javascript
完美实现仿QQ空间评论回复特效
2015/05/06 Javascript
深入理解JavaScript的React框架的原理
2015/07/02 Javascript
基于js实现投票的实例代码
2015/08/04 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
2016/03/07 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
React native ListView 增加顶部下拉刷新和底下点击刷新示例
2018/04/27 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
2018/05/09 jQuery
LayUI表格批量删除方法
2018/08/15 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
2018/11/08 Javascript
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
python超简单解决约瑟夫环问题
2015/05/12 Python
Python3 执行Linux Bash命令的方法
2019/07/12 Python
通过python3实现投票功能代码实例
2019/09/26 Python
Python:二维列表下标互换方式(矩阵转置)
2019/12/02 Python
Python3 使用selenium插件爬取苏宁商家联系电话
2019/12/23 Python
PyTorch的自适应池化Adaptive Pooling实例
2020/01/03 Python
django-csrf使用和禁用方式
2020/03/13 Python
Python列表推导式实现代码实例
2020/09/09 Python
python获得命令行输入的参数的两种方式
2020/11/02 Python
python实现双人五子棋(终端版)
2020/12/30 Python
米兰必去买手店排行榜首位:Antonioli
2016/09/11 全球购物
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
英国工具中心:UK Tool Centre
2017/07/10 全球购物
农村环境卫生倡议书
2015/04/29 职场文书
爸爸的三轮车观后感
2015/06/16 职场文书
简述Java中throw-throws异常抛出
2021/08/07 Java/Android
Rust中的Struct使用示例详解
2022/08/14 Javascript