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的威力
Oct 10 Javascript
javascript中全局对象的parseInt()方法使用介绍
Dec 19 Javascript
将json对象转换为字符串的方法
Feb 20 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
May 25 Javascript
简介JavaScript中substring()方法的使用
Jun 06 Javascript
js实现的动画导航菜单效果代码
Sep 10 Javascript
ajax的分页查询示例(不刷新页面)
Jan 11 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
May 02 Javascript
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
Aug 09 jQuery
React Native 自定义下拉刷新上拉加载的列表的示例
Mar 01 Javascript
使用electron实现百度网盘悬浮窗口功能的示例代码
Oct 24 Javascript
微信小程序实现文字从右向左无限滚动
Nov 18 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和MySql来与ODBC数据连接
2006/10/09 PHP
非常好用的Zend Framework分页类
2014/06/25 PHP
php中操作memcached缓存进行增删改查数据的实现代码
2014/08/15 PHP
PHP中使用Memache作为进程锁的操作类分享
2015/03/30 PHP
php生成静态html页面的方法(2种方法)
2015/09/14 PHP
十个PHP高级应用技巧果断收藏
2015/09/25 PHP
用javascript父窗口控制只弹出一个子窗口
2007/04/10 Javascript
js实现iframe动态调整高度的代码
2008/01/06 Javascript
10个实用的脚本代码工具
2010/05/04 Javascript
不使用XMLHttpRequest实现异步加载 Iframe和script
2012/10/29 Javascript
JavaScript原生对象之String对象的属性和方法详解
2015/03/13 Javascript
Js和JQuery获取鼠标指针坐标的实现代码分享
2015/05/25 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
实用又漂亮的BootstrapValidator表单验证插件
2016/05/30 Javascript
jQuery.datatables.js插件用法及api实例详解
2016/10/28 Javascript
js实现的简练高效拖拽功能示例
2016/12/21 Javascript
浅谈ES6新增的数组方法和对象
2017/08/08 Javascript
Vue 仿QQ左滑删除组件功能
2018/03/12 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
2018/11/06 Javascript
微信小程序实现复选框效果
2018/12/28 Javascript
Nuxt.js 数据双向绑定的实现
2019/02/17 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
Element el-button 按钮组件的使用详解
2021/02/01 Javascript
[01:04:01]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第一场
2014/05/24 DOTA
Python文件去除注释的方法
2015/05/25 Python
python实现整数的二进制循环移位
2019/03/08 Python
python pygame实现方向键控制小球
2019/05/17 Python
pandas抽取行列数据的几种方法
2020/12/13 Python
趣味活动策划方案
2014/02/08 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
《我要的是葫芦》教学反思
2016/02/18 职场文书
2019年入党思想汇报格式与要求
2019/06/25 职场文书
导游词之西安骊山
2019/12/03 职场文书
导游词之西安大清真寺
2019/12/17 职场文书
CocosCreator如何实现划过的位置显示纹理
2021/04/14 Javascript
Python中requests做接口测试的方法
2021/05/30 Python