vue插件vue-resource的使用笔记(小结)


Posted in Javascript onAugust 04, 2017

最近手头有个小项目,打算用vue练个手,期间用到了vue的插件:vue-resource。下面是我使用这个插件的一些经验,算是给自己写的一个笔记,分享出来也希望和我遇到同样坑的朋友可以借此踩坑而过~

在使用这个插件之前,当然是先安装啦:

npm i vue-resource --save

安装读条完毕,接下来便是在项目中引入:

import VueResource from 'vue-resource'
Vue.use(VueResource);

如上所述,在入口文件中引入vue-resource即可。然后便是具体的使用了。vue-resource的使用和以前在JQ,ZEPTO等等中使用的$.ajax方式类似,当然,官方也提供了一系列的接口供小伙伴儿们使用,具体在此不做赘述,有兴趣的小伙伴儿请移步:

Git传送门:https://github.com/pagekit/vue-resource/blob/master/README.md

具体的使用方式个中均有详述。

最后,就是我自己遇到的一个坑,上代码!(不喜过程的小伙伴儿可以看波代码,然后直接跳到文章尾看结论。)

<script>
 export default {
  name: 'app',
  data () {
   return {
    articles: []
   }
  },
  created: function() {
   this.$http.get('/api/user/order/list',
     {
       productType:"1",
       pageNum:1,
       pageLimit:8
     },
     {
      headers:{

      },
      emulateJSON: true
     }
   ).then((response) => {
    this.articles = response.data.data.list;
   }).catch(function(response) {
    console.log(response)
   });
  }
 }
</script>

这个是最初始的代码,满心欢喜打包运行之后,发现控制台报了个错,说list未定义!WTF!为此我去后台看了下接口调用的情况,发现之前在调用接口时所传的参数并没有传参成功,后来去网上多方搜查资料,发现把传参方式修改成如下形式即可:

{
 params: {
  productType:"1",
  pageNum:1,
  pageLimit:8
 }
}

和之前的传参方式不同,这次我把参数加在了一个名为params的对象中,再次打包后上传,发现接口调用成功!

在这里,我对params做一个解释,params表示的是支持上传多个可变参数,至于为啥加了之后就可以了,我也不是非常清楚,如有大神看到,望不吝赐教OTZ。

OK,既然接口调用成功了,那么数据也应该就如愿以偿的可以获取到了,然而看到页面上仍是一片空白,懵逼的我瞄了一眼控制台,发现此时控制台上报了个错,说list未定义。WTF!为此我仔细的看了下接口的数据结构,发现这样赋值并没有问题,可就是报错未定义。于是便有了如下猜想:

想法一:response数据返回有误

针对这个想法,我console了下response,发现response返回正常,此想法被终结。

想法二:既然response返回没有问题,那问题难道出在data上?

针对这个想法,我console了下response.data,发现response.data返回正常,返回的数据正是我接口中的数据!

验证完这两个想法之后,我有点迷糊了,既然data没有问题,为什么获取不到内部的数据呢?带着这个问题,我去GOOGLE了一把,发现vue-resource的GET方法返回的response不仅仅只是单纯的数据,而是包含了请求头信息,数据等等一系列的数据,而vue-response也提供了提取数据的方法:response.json()。感觉抓到救命稻草的我迫不及待的试用的这个方法去获取数据,结果依旧无法获取。

想法三:既然response.json()无法获取,应该有其他的方法可以获取到。

为此,我又去参考了相应的文档,发现确实还有一个方法:response.body.data!如蒙大赦,天不亡我!

然。。。依旧失败。多次的尝试无果,略有烦躁,恰巧这个时候,同事问了我一个问题,也是接口的数据获取不到,只不过是用的$.ajax的方法,后来发现是未定义dataType:JSON的问题。说到这儿,醍醐灌顶!是不是一开始,data返回的就不是JSON格式,而是字符串的格式?于是,我在最开始获取数据的方式外,加了一层JSON.parse:

this.articles = JSON.parse(response.data).data.list;

满怀期待的看着控制台,终于,获取到数据。

结论:综上所述,在使用vue-resource时,需要留意最终获取的数据是否为JSON格式,如若不是,需要先进行JSON格式化才可以。vue-resource是否有设置dataType的入口,本人才疏学浅,还未得知,以后如果发现,定会告知。如有大神看到,希望不吝赐教OTZ~

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery Div中加载其他页面的实现代码
Feb 27 Javascript
用js设置下拉框为只读的小技巧
Apr 10 Javascript
浅谈Javascript中substr和substring的区别
Sep 30 Javascript
JavaScript中两个字符串的匹配
Jun 08 Javascript
JavaScript中setter和getter方法介绍
Jul 11 Javascript
微信小程序开发之Tabbar实例详解
Jan 09 Javascript
使用vue实现点击按钮滑出面板的实现代码
Jan 10 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
Sep 20 Javascript
Vue 兄弟组件通信的方法(不使用Vuex)
Oct 26 Javascript
vue中设置、获取、删除cookie的方法
Sep 21 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
Oct 31 Javascript
vue相同路由跳转强制刷新该路由组件操作
Aug 05 Javascript
分享Bootstrap简单表格、表单、登录页面
Aug 04 #Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
Aug 04 #Javascript
使用jQuery实现鼠标点击左右按钮滑动切换
Aug 04 #jQuery
vue修改vue项目运行端口号的方法
Aug 04 #Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
Aug 04 #Javascript
微信小程序 本地图片按照屏幕尺寸处理
Aug 04 #Javascript
Javascript实现跨域后台设置拦截的方法详解
Aug 04 #Javascript
You might like
php加密算法之实现可逆加密算法和解密分享
2014/01/21 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
2016/09/02 PHP
详解Yii2高级版引入bootstrap.js的一个办法
2017/03/21 PHP
PHP实现Unicode编码相互转换的方法示例
2020/11/17 PHP
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
Event altKey,ctrlKey,shiftKey属性解析
2013/12/18 Javascript
AngularJS基础知识
2014/12/21 Javascript
js模拟淘宝网的多级选择菜单实现方法
2015/08/18 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法
2016/10/27 Javascript
vue中引入第三方字体文件的方法示例
2018/12/17 Javascript
深入学习js函数的隐式参数 arguments 和 this
2019/06/24 Javascript
重学JS之显示强制类型转换详解
2019/06/30 Javascript
JS实现使用POST方式发送请求
2019/08/30 Javascript
Python中Class类用法实例分析
2015/11/12 Python
开源软件包和环境管理系统Anaconda的安装使用
2017/09/04 Python
Python 2.x如何设置命令执行的超时时间实例
2017/10/19 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
python3 打开外部程序及关闭的示例
2018/11/06 Python
python+selenium实现自动化百度搜索关键词
2019/06/03 Python
python中单下划线(_)和双下划线(__)的特殊用法
2019/08/29 Python
Python计算指定日期是今年的第几天(三种方法)
2020/03/26 Python
Django项目uwsgi+Nginx保姆级部署教程实现
2020/04/19 Python
Django def clean()函数对表单中的数据进行验证操作
2020/07/09 Python
使用css实现android系统的loading加载动画
2019/07/25 HTML / CSS
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
自动化工程专业个人应聘自荐信
2013/09/26 职场文书
运动会表扬稿大全
2014/01/16 职场文书
担保书格式及范文
2014/04/01 职场文书
平安校园建设方案
2014/05/02 职场文书
我爱家乡演讲稿
2014/09/12 职场文书
医院领导班子四风问题对照检查材料
2014/10/26 职场文书
社区义诊通知
2015/04/24 职场文书
校车司机安全责任书
2015/05/11 职场文书
学校运动会加油词
2015/07/18 职场文书