国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue插件vue-resource的使用筆記(小結(jié))

2019-11-19 15:54:05
字體:
供稿:網(wǎng)友

最近手頭有個小項目,打算用vue練個手,期間用到了vue的插件:vue-resource。下面是我使用這個插件的一些經(jīng)驗,算是給自己寫的一個筆記,分享出來也希望和我遇到同樣坑的朋友可以借此踩坑而過~

在使用這個插件之前,當然是先安裝啦:

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

具體的使用方式個中均有詳述。

最后,就是我自己遇到的一個坑,上代碼!(不喜過程的小伙伴兒可以看波代碼,然后直接跳到文章尾看結(jié)論。)

<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>

這個是最初始的代碼,滿心歡喜打包運行之后,發(fā)現(xiàn)控制臺報了個錯,說list未定義!WTF!為此我去后臺看了下接口調(diào)用的情況,發(fā)現(xiàn)之前在調(diào)用接口時所傳的參數(shù)并沒有傳參成功,后來去網(wǎng)上多方搜查資料,發(fā)現(xiàn)把傳參方式修改成如下形式即可:

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

和之前的傳參方式不同,這次我把參數(shù)加在了一個名為params的對象中,再次打包后上傳,發(fā)現(xiàn)接口調(diào)用成功!

在這里,我對params做一個解釋,params表示的是支持上傳多個可變參數(shù),至于為啥加了之后就可以了,我也不是非常清楚,如有大神看到,望不吝賜教OTZ。

OK,既然接口調(diào)用成功了,那么數(shù)據(jù)也應該就如愿以償?shù)目梢垣@取到了,然而看到頁面上仍是一片空白,懵逼的我瞄了一眼控制臺,發(fā)現(xiàn)此時控制臺上報了個錯,說list未定義。WTF!為此我仔細的看了下接口的數(shù)據(jù)結(jié)構(gòu),發(fā)現(xiàn)這樣賦值并沒有問題,可就是報錯未定義。于是便有了如下猜想:

想法一:response數(shù)據(jù)返回有誤

針對這個想法,我console了下response,發(fā)現(xiàn)response返回正常,此想法被終結(jié)。

想法二:既然response返回沒有問題,那問題難道出在data上?

針對這個想法,我console了下response.data,發(fā)現(xiàn)response.data返回正常,返回的數(shù)據(jù)正是我接口中的數(shù)據(jù)!

驗證完這兩個想法之后,我有點迷糊了,既然data沒有問題,為什么獲取不到內(nèi)部的數(shù)據(jù)呢?帶著這個問題,我去GOOGLE了一把,發(fā)現(xiàn)vue-resource的GET方法返回的response不僅僅只是單純的數(shù)據(jù),而是包含了請求頭信息,數(shù)據(jù)等等一系列的數(shù)據(jù),而vue-response也提供了提取數(shù)據(jù)的方法:response.json()。感覺抓到救命稻草的我迫不及待的試用的這個方法去獲取數(shù)據(jù),結(jié)果依舊無法獲取。

想法三:既然response.json()無法獲取,應該有其他的方法可以獲取到。

為此,我又去參考了相應的文檔,發(fā)現(xiàn)確實還有一個方法:response.body.data!如蒙大赦,天不亡我!

然。。。依舊失敗。多次的嘗試無果,略有煩躁,恰巧這個時候,同事問了我一個問題,也是接口的數(shù)據(jù)獲取不到,只不過是用的$.ajax的方法,后來發(fā)現(xiàn)是未定義dataType:JSON的問題。說到這兒,醍醐灌頂!是不是一開始,data返回的就不是JSON格式,而是字符串的格式?于是,我在最開始獲取數(shù)據(jù)的方式外,加了一層JSON.parse:

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

滿懷期待的看著控制臺,終于,獲取到數(shù)據(jù)。

結(jié)論:綜上所述,在使用vue-resource時,需要留意最終獲取的數(shù)據(jù)是否為JSON格式,如若不是,需要先進行JSON格式化才可以。vue-resource是否有設置dataType的入口,本人才疏學淺,還未得知,以后如果發(fā)現(xiàn),定會告知。如有大神看到,希望不吝賜教OTZ~

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宜丰县| 佛冈县| 文昌市| 中方县| 理塘县| 商水县| 云和县| 宁安市| 梅州市| 滕州市| 陆川县| 澄迈县| 军事| 大田县| 西充县| 叙永县| 古田县| 阿拉尔市| 双柏县| 宿州市| 保定市| 惠水县| 龙游县| 澄迈县| 罗平县| 江城| 突泉县| 绍兴县| 永春县| 岳阳市| 翁源县| 永靖县| 新沂市| 鄂托克旗| 五峰| 尖扎县| 满洲里市| 临邑县| 纳雍县| 阳信县| 始兴县|