1. 程式人生 > >強烈推薦:支援Vue家族全系框架的跨平臺http請求庫-fly.js

強烈推薦:支援Vue家族全系框架的跨平臺http請求庫-fly.js

Fly.js 一個基於Promise的、強大的、支援多種JavaScript執行時的http請求庫. 有了它,您可以使用一份http請求程式碼在瀏覽器、微信小程式、Weex、Node中都能正常執行。同時可以方便配合 Vue家族的框架,最大可能的實現 Write Once, Run Everywhere

問題

隨著 Weex 、mpvue 的釋出,他們都是支援Vue.js語法。目前vue已經你能夠執行在瀏覽器、小程式和Native了。儘管各個平臺仍有差異,但已經基本能實現 Write Once Run Everywhere 。這使得我們可以在多個端上實現儘可能大限度在程式碼複用。但是無論是 vue 還是Weex 、mpvue,它們本質上都只是一個View層,也就說最好的情況,也只能實現UI複用。但對於一個應用程式來說,除了UI,最重要的就是資料了,而資料來源一般都是來自網路請求(大多數都是http)。在使用這些框架時,您的網路請求,都需要使用平臺特定的API!這很糟糕,意味著您網路請求的程式碼不能複用,所以儘管UI可以複用,但我們還需要去適配網路請求部分的程式碼。

一致的網路請求

要解決這個問題,就需要一個能支援多個平臺網路庫,使用者層提供統一的API,將平臺差異在底層遮蔽。而 Fly.js就是這醬紫的一個網路庫,為了方便axios使用者遷移,fly.js API設計風格和axios相似(但不完全相同)!

Fly.js 通過在不同 JavaScript 執行時通過在底層切換不同的 Http Engine來實現多環境支援,但同時對使用者層提供統一、標準的Promise API。不僅如此,Fly.js還支援請求/響應攔截器、自動轉化JSON、請求轉發等功能,詳情請參考:https://github.com/wendux/fly

已支援的平臺

目前Fly.js支援的平臺包括:

Node.js微信小程式Weex 和瀏覽器,這些平臺的 JavaScript 執行時都是不同的。更多的平臺正在持續新增中,請保持關注。

Fly簡單使用示例

下面示例如無特殊說明,則在所有支援的平臺下都能執行。

發起GET請求

//不同平臺可能需要引入不同檔案,詳情見文件
var fly=require("flyio")

//通過使用者id獲取資訊,引數直接寫在url中
fly.get('/user?id=133')
  .then(function (response) {
    console.log(response);
  })
  .catch(function
(error) {
console.log(error); }); //query引數通過物件傳遞 fly.get('/user', { id: 133 }) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); });

發起POST請求

fly.post('/user', {
    name: 'Doris',
    age: 24
    phone:"18513222525"
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

發起多個併發請求

function getUserRecords() {
  return fly.get('/user/133/records');
}

function getUserProjects() {
  return fly.get('/user/133/projects');
}

fly.all([getUserRecords(), getUserProjects()])
  .then(fly.spread(function (records, projects) {
    //兩個請求都完成
  }))
  .catch(function(error){
    console.log(error)
  })

攔截器

Fly支援請求/響應攔截器,可以通過它在請求發起之前和收到響應資料之後做一些預處理。


//新增請求攔截器
fly.interceptors.request.use((request)=>{
    //給所有請求新增自定義header
    request.headers["X-Tag"]="flyio";
    //打印出請求體
    console.log(request.body)
    //終止請求
    //var err=new Error("xxx")
    //err.request=request
    //return Promise.reject(new Error(""))

    //可以顯式返回request, 也可以不返回,沒有返回值時攔截器中預設返回request
    return request;
})

//新增響應攔截器,響應攔截器會在then/catch處理之前執行
fly.interceptors.response.use(
    (response) => {
        //只將請求結果的data欄位返回
        return response.data
    },
    (err) => {
        //發生網路錯誤後會走到這裡
        //return Promise.resolve("ssss")
    }
)

除過以上這些使用,Fly.js 還有很多其它強大的功能,詳情請移步Fly.js.

反饋

相關推薦

強烈推薦支援Vue家族框架跨平臺http請求-fly.js

Fly.js 一個基於Promise的、強大的、支援多種JavaScript執行時的http請求庫. 有了它,您可以使用一份http請求程式碼在瀏覽器、微信小程式、Weex、Node中都能正常執行。同時可以方便配合 Vue家族的框架,最大可能的實現 Wri

強烈推薦 最用心的運營資料指標解讀

資料分析涉及不同的業務領域,很多時候,業務的瞭解比資料技巧更重要。很多新人常問Python、SQL,但鮮有問業務,可後者才決定分析的成敗。   業務的洞悉決定了資料分析師發展的上限,資料技巧只是逼近它。好的分析師都懂業務,也必須懂業務。   我希望通過本文,讓資料

強烈推薦Java程式設計過程中正確的異常處理方法

  Java程式設計過程中的異常處理是一個很常見的話題,幾乎任何一門介紹性的Java課程都會提到異常處理。不過,我認為很多人其實並沒有真正掌握正確處理異常情況的方法和策略,最多也就瞭解個大概,知道點概念。 首先我來解釋一些java異常處理中必須搞清楚的定義和機制吧。Java語

強烈推薦給計算機系學生的建議

給計算機系學生的建議 作者: 周思博 (Joel Spolsky)譯: Chen Bin 2005年1月2日 雖然大概一兩年前我還在誇誇其談桌面應用程式是將來的潮流,大學生們現在還是偶爾向我請教職業發展的問題。所以我把我的建議寫下來。以供學生們閱讀,嘲笑,忽略。大多數銳氣十足的學生從來不向前輩徵求意見。在電腦

OpenStack超級使用者推薦史上最邊緣計算學習資料

導讀      以下是一批邊緣計算學習資料,其中一些是由 OpenStack Superuser

強烈推薦240多個jQuery外掛

概述 jQuery 是繼 prototype 之後又一個優秀的 Javascript 框架。其宗旨是—寫更少的程式碼,做更多的事情。它是輕量級的 js 庫(壓縮後只有21k) ,這是其它的 js 庫所不及的,它相容  CSS3,還相容各種瀏覽器(IE 6.0+, FF 1

強烈推薦優秀的Vue UI元件

Vue 是一個輕巧、高效能、可元件化的MVVM庫,API簡潔明瞭,上手快。從Vue推出以來,得到眾多Web開發者的認可。在公司的Web前端專案開發中,多個專案採用基於Vue的UI元件框架開發,並投入正式使用。開發團隊在使用Vue.js框架和UI元件庫以後,開發效率大大提高,自己寫的程式碼也少了,很多

uni-app基於Vue的跨端框架(閃電演講內容整理) | 掘金開發者大會

感謝掘金提供機會,跟大家閃電分享一下uni-app ^_^ 一句話介紹uni-app :一款基於vue的跨平臺前端框架; 多說兩句就是:開發者通過編寫 Vue.js 程式碼,uni-app 將其編譯到iOS、Android、微信小程式等多個平臺,保證其正確執行並達到優秀體驗。

Urllibpython內建的http請求

1、四個模組: request error parse robotparser 2、urlopen(url, data, timeout) 傳送請求 get請求無data; post請求有data 3、read() 獲取響應體的內容 4、Handl

第一篇如何生成每秒百萬級別的 HTTP 請求

 本文是構建能夠每秒處理 3 百萬請求的高效能 Web 集群系列文章的第一篇。它記錄了我使用負載生成器工具的一些經歷,希望它能幫助每一個像我一樣不得不使用這些工具的人節省時間。 負載生成器是一些生成用於測試的流量的程式。它們可以向你展示伺服器在高負載的情況下的效能,以及

Vue中使用反向代理模擬http請求中host和referer,騙過Web伺服器對請求的限制

host:翻譯的意思是主機,它在window.location中的作用是設定或返回當前URL的主機名和埠號referer:HTTP referer 是header的一部分,當瀏覽器向Web伺服器傳送請求的時候,一般會帶上referer,告訴伺服器我是從哪個頁面過來的,伺服器基

面試官一個 TCP 連線可以發多少個 HTTP 請求

曾經有這麼一道面試題:從 URL 在瀏覽器被被輸入到頁面展現的過程中發生了什麼? 相信大多數準備過的同學都能回答出來,但是如

強烈推薦】科註學習班——自了法師分享珍惜暇滿人身寶(上)

針對 得來 pro 後來 全國 有一點 HR ner 想去 凈土宗專修平臺 2016-03-11 新佛友請點擊圖片上方【凈土宗專修平臺】輕松關註。回復【阿彌陀佛】既有大量珍貴資源(在百度網盤裏)與您分享! 摘自《科註學習班第206集》 2016/3/2

tcpdump抓包分析(強烈推薦)

logs win 18C 所有 網絡數據 括號 auto -s shu 轉自:https://mp.weixin.qq.com/s?__biz=MzAxODI5ODMwOA==&mid=2666539134&idx=1&sn=5166f0aac71

推薦非常面的 MySQL 高效能優化實戰總結~

一、前言 MySQL對於很多Linux從業者而言,是一個非常棘手的問題,多數情況都是因為對資料庫出現問題的情況和處理思路不清晰。在進行MySQL的優化之前必須要了解的就是MySQL的查詢過程,很多的查詢優化工作實際上就是遵循一些原則讓MySQL的優化器能夠按照預想的合理方式執行而已。 今

python 學習彙總54operator模組( 推薦- tcy)

本人彙總網上各種資料,經整理除錯,補充,以上例程全部通過iPython3.7.比較複雜的案例本人沒有采用,僅僅以簡單例項, 說明基本的使用方法,由於函式較多,每一類都至少有一個例項。請慢慢檢視。。。有點多 python operator模組 2018/11/19   用途

最好理解的 spring ioc原理講解,強烈推薦

IOC(DI):java程式中的每個業務邏輯至少需要兩個或以上的物件來協作完成。通常,每個物件在使用他的合作物件時,自己均要使用像new object() 這樣的語法來完成合作物件的申請工作。你會發現:物件間的耦合度高了。 而IOC的思想是:Spring容器來實現這些相互依

Node.js+MySQL+Vue棧實戰專案星辰筆記

本場 Chat 是一個基於 Node.js 的全棧是實戰專案,目標就是帶領讀者朋友上手實戰。眾所周知全棧工程師是要比純前端有發展前景的,非常希望本篇文章能給朋友們帶來一些收穫。 該實戰專案主要有首頁、登陸、註冊、筆記分類,筆記列表,筆記詳情,釋出筆記和個人主頁八個部分。專案雖小,五臟俱全,設計的知

強烈推薦一個自學網可汗學院

可汗學院 據說有個叫薩爾曼·可汗(SalmanKhan)的小夥子創辦了一所可汗學院,這個學院只有一個老師、一臺電腦,卻有一千萬學生,曾經的世界首富比爾蓋茨是他粉絲,教育大佬俞敏洪的兒子每天都在可汗學院學習。然並卵,雖然薩爾曼·可汗被尊稱為網際網路時代教育思想家、數學教父,老俞自誇兒子愛用

(轉)IHS配置安全漏洞 支援推薦使用的 SSL 版本、在降級的舊加密上填充 Oracle、檢測到 RC4 密碼套件、支援弱 SSL 密碼套件、 重構 RSA 匯出鍵(又稱為 FREAK)

原文:https://blog.csdn.net/lyd135364/article/details/52179426 都是由於ihs配置中支援不推薦使用的ssl版本和弱密碼套件引起的。 只要在配置檔案中禁用sslv2,sslv3和申明使用的非弱密碼套件即可,在/opt/IBM/HTTPServer/co