问题:

用ajax或者axios,get数据是正常的。但是渲染数据时data一直为空

问题代码:

下面代码看起来是正常的,但是当运行的时候会报错: 这时候你运行时会发现,数据可以请求到,但是会报错TypeError: Cannot set property ‘dataList’ of undefined

data () {return {dataList:[],}
},
mounted(){this.getDataList()
},
methods:{getDataList(){//用axios获取数据axios({method:'get',url:'/api/info'}).then(function(response){console.log(response.data)this.listClass = response.data}).catch(function(error){ // 请求失败处理console.log(error);});//用ajax获取数据$.ajax({url: '/api/devices',method: 'GET',dataType: 'JSON',async:false,success: function(data) {that.listClass = data}})}
}

主要原因是:

在ajax中的this会指向ajax本身,而不再是vue实例本身 ,同理,axios的then中this也不是指向vue实例本身

解决办法:

方法1: 用ES6箭头函数,箭头方法可以和父方法共享变量 ( ES6中的 箭头函数 “=>” 内部的this是词法作用域,由上下文确定(也就是由外层调用者vue来确定) )

axios({method:'get',url:'/api/info'}).then((response) => {console.log(response.data)that.listClass = response.data}).catch((error) => { // 请求失败处理console.log(error);});

方法2: 在请求axios外面定义一下 var that=this

//用axios获取数据var that = thisaxios({method:'get',url:'/api/info'}).then(function(response){console.log(response.data)that.listClass = response.data}).catch(function(error){ // 请求失败处理console.log(error);});

拓展:

vue项目怎么引入全局的axios?

下载:

npm install axios --save

引入:

import axios from "axios"
Vue.prototype.$axios = axios

使用:

this.$axios({url: "api/login",method: "post"
})

Vue使用ajax或者axios获取数据,能获取到数据但是页面没有更新相关推荐

  1. vue定时ajax获取数据,vue 中使用 AJAX获取数据的方法

    在VUE开发时,数据可以使用jquery和vue-resource来获取数据.在获取数据时,一定需要给一个数据初始值. 看下例: new Vue({ el:'#app', data:{data:&qu ...

  2. vue 后台数据列表获取图片_vue使用ajax获取后台数据进行显示的示例

    实例如下所示: title #th th{ background-color: #50a9fa; color: aliceblue; font-size: large; } 添加数据 编号 名称 时间 ...

  3. vue 读取ajax数据,详解vue 中使用 AJAX获取数据的方法

    在VUE开发时,数据可以使用jquery和vue-resource来获取数据.在获取数据时,一定需要给一个数据初始值. 看下例: new Vue({ el:'#app', data:{data:&qu ...

  4. (vue)在ajax获取数据时使用loading组件不起作用

    问题描述: 在用ajax获取数据时 页面没有变化,想用一个loading图标在获取数据时显示,获取完成后隐藏 整个系统用到了vue框架,在执行sure方法时调用ajax函数 sure() {conso ...

  5. vue之猫眼json数据的获取直接用于自己的vue项目中,swiper轮播插件的坑

    vue之猫眼json数据的获取直接用于自己的vue项目中 遇到问题总结: 加载不出猫眼数据,无法调用,数据被限制 猫眼电影图片的拼接及删除问题 swiper的迷幻坑** 首先来说一下第一问题 加载不出 ...

  6. vue使用ajax提交数据,vue使用ajax请求后台数据的方法

    vue使用ajax请求后台数据的方法 发布时间:2020-10-15 16:54:41 来源:亿速云 阅读:108 作者:栢白 这篇文章主要介绍了vue使用ajax请求后台数据的方法,具有一定借鉴价值 ...

  7. vusjs 配合php_对照着jquery来学vue.js系列之配合thinkphp下拉获取分页数据

    上篇文章介绍了vue.js如何ajax获取数据: 接着不可避免就遇到的是: 如何进行数据分页呢? 这里以thinkphp为示例讲解:其他场景性质一样: 示例项目:https://github.com/ ...

  8. vue 文件转换二进制_在vue中使用axios实现post方式获取二进制流下载文件(实例代码)...

    需求 点击导出下载表格对应的excel文件 在 vue 项目中,使用的 axios ,后台 java 提供的 post 接口 api 实现 第一步,在 axios 请求中加入参数,表示接收的数据为二进 ...

  9. json模拟数据怎么用_在使用axios获取自己模拟的json数据是踩到的坑

    最近在使用Vue仿写一个网易云音乐的单页面应用,当页面布局什么的写完后,然后就准备用axios获取后台数据渲染页面了,当然,我自己写的,并没有后台,所以,我就自己写json文件,然后弄proxy代理什 ...

最新文章

  1. Docker 安装JDK1.8
  2. onSaveInstanceState在系统之后可能会杀掉Activity时调用,onStop之前
  3. JAVA实现N皇后问题(回溯法)
  4. Tomcat服务器java.lang.IllegalArgumentException异常
  5. 【错误异常大全】:ArcGIS version not specified. You must call RuntimeManager.Bind before creating any ArcGIS
  6. 戏(细)说Executor框架线程池任务执行全过程(上)
  7. excel c# 输出
  8. 重庆大学微型计算机基础实验,计控课程方案设计书.doc
  9. HALCON标定板简介
  10. 用python进行文本分析_用Python分析文本文件
  11. Air720H模块MQTT协议的AT指令流程
  12. c语言中输出以e为底的指数,C语言中 ln(以自然对数e为底) lg(以十为底) 以及logab(以a为底,b为真数)的相关知识...
  13. linux clac countif的使用
  14. 4 security management strategies for data center consolidation
  15. 【无标题】C基础 2
  16. 10月更新!又一波新功能上线,升级后的EasyOps®简直神了!
  17. java开发一个购物车实验,JAVAWEB购物车实验报告.doc
  18. 写给所有程序员的心声~千里马常有,但伯乐不常有
  19. 《软考填涂答题卡须知》
  20. 如何应对运营商插入的广告、被运营商劫持怎么办

热门文章

  1. 索爱确认2月13日发布Xperia Play
  2. 谷歌有情怀!谷歌开放大规模音频数据集 AudioSet
  3. pb 哪里找到系统图标_建议收藏的7个高质量图标网站,一网打尽图标素材
  4. esp8266 扫描wifi_wifi气象站
  5. python 短视频_短视频篇 | Python 带你进行短视频二次创作
  6. Servlet过滤器Filter和监听器
  7. bzoj4974: [Lydsy1708月赛]字符串大师
  8. javascript循环语句及函数
  9. 工厂模式三部曲之工厂方法模式
  10. SQL Agent服务无法启动如何破