全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

最近手头有个小项目,打算用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~

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


# vue  # resource插件使用  # vueresource插件  # resource使用  # Vue添加请求拦截器及vue-resource 拦截器使用  # vue resource post请求时遇到的坑  # vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)  # Vue2.0利用vue-resource上传文件到七牛的实例代码  # Vue resource中的GET与POST请求的实例代码  # 详解vue前后台数据交互vue-resource文档  # vue-resource 拦截器(interceptor)的使用详解  # Vue中的vue-resource示例详解  # 看了  # 不吝赐教  # 如有  # 我去  # 大神  # 报了  # 使用这个  # 的是  # 我也  # 看着  # 上传  # 在这里  # 我在  # 才疏学浅  # 带着  # 有个  # 多个  # 在此  # 醍醐灌顶  # 和我 


相关文章: 如何在建站宝盒中设置产品搜索功能?  网站制作需要会哪些技术,建立一个网站要花费多少?  如何登录建站主机?访问步骤全解析  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  香港服务器租用费用高吗?如何避免常见误区?  如何高效配置香港服务器实现快速建站?  小型网站制作HTML,*游戏网站怎么搭建?  建站VPS能否同时实现高效与安全翻墙?  如何在VPS电脑上快速搭建网站?  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  开封网站制作公司,网络用语开封是什么意思?  建站之星安装失败:服务器环境不兼容?  建站之星微信建站一键生成小程序+多端营销系统  C#如何在一个XML文件中查找并替换文本内容  如何快速搭建响应式可视化网站?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  ,如何利用word制作宣传手册?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  建站主机CVM配置优化、SEO策略与性能提升指南  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  建站主机助手选型指南:2025年热门推荐与高效部署技巧  网站专业制作公司有哪些,做一个公司网站要多少钱?  实现虚拟支付需哪些建站技术支撑?  建站主机选购指南与交易推荐:核心配置解析  建站之星北京办公室:智能建站系统与小程序生成方案解析  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何在IIS中新建站点并配置端口与IP地址?  如何选择高效稳定的ISP建站解决方案?  建站之星如何快速解决建站难题?  建站之星如何防范黑客攻击与数据泄露?  内网网站制作软件,内网的网站如何发布到外网?  营销式网站制作方案,销售哪个网站招聘效果最好?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  打鱼网站制作软件,波克捕鱼官方号怎么注册?  实例解析angularjs的filter过滤器  活动邀请函制作网站有哪些,活动邀请函文案?  电脑免费海报制作网站推荐,招聘海报哪个网站多?  小型网站建站如何选择虚拟主机?  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  如何配置FTP站点权限与安全设置?  深圳网站制作培训,深圳哪些招聘网站比较好?  无锡营销型网站制作公司,无锡网选车牌流程?  如何在腾讯云服务器快速搭建个人网站?  如何选择CMS系统实现快速建站与SEO优化?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  制作营销网站公司,淘特是干什么用的?  如何制作网站标识牌,动态网站如何制作(教程)?  寿县云建站:智能SEO优化与多行业模板快速上线指南 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。