在 chrome 瀏覽器中已經全域性支援了 fetch 函式,開啟除錯工具,在 console 中可以進行體驗下fetch。先不考慮跨域請求的使用方法,我們先請求同域的資源。例如:
fetch("").then(function(response))
使用 fetch 的建構函式請求資料後,返回乙個 promise 物件,然後根據具體的實際情況處理。
fetch("")
.then(function(response))
說明,在請求後的 response 中,常常有如下返回情況:
1.使用get方式進行網路請求,例如:
fetch('', ).then(function(response) ).catch(function(err) );
2.使用post方式進行網路請求,例如:
let param = ;
fetch(url, ).then(function(response) );
3.其它寫法,例如:
try ).then(function(response) );
} catch(e)
4.帶header 或其它引數,例如:
fetch(url, ,
body: json.stringify()
})
我們先看看使用fetch並填充介面後的完整效果。
要實現上面的效果,我們需要對資料進行監聽,也就是所謂的狀態機機制。
state:
然後我們使用fetch進行網路請求,當有資料返回時,我們更改資料來源的資料。
requestdiscount() )
}).catch((error) => )
}
那麼什麼時候出發這個請求呢?當我們介面掛載的時候就觸發這個請求,所以我們在componentdidmount呼叫這個請求。
componentdidmount()
返回的內容如下:
,
title: "今日爆款",
deputy_typeface_color: "#21c0ae",
imageurl: ""},,
title: "電影特惠",
deputy_typeface_color: "#c280fc",
tplurl: "imeituan:",
imageurl: ""},,
title: "**出遊",
deputy_typeface_color: "#fc6a56",
tplurl: "imeituan:",
imageurl: ""},,
title: "今日推薦",
deputy_typeface_color: "#fdb32b",
tplurl: "imeituan:",
imageurl: ""}],
server: ,
paging:
}
到此,資料請求基本完成了,接下來就是怎麼將資料繪製到介面上的問題。為了方便我們需要自定義乙個gridview用來繪製這個九宮格介面。我們在render()中定義乙個props來接受請求返回的資料。**如下:
class gridview extends component
render() = this.props
let griditems =
for (let i = 0; i < infos.length; i++) />
)griditems.push(griditem)
}return ();}
}const styles = stylesheet.create(,
});export default gridview;
然後我們在繪製每乙個griditem,這個有點類似於android的adapter或者ios的collectionviewcell。**如下,不做詳細的介紹:
var dimensions = require('dimensions');
var screen = dimensions.get('window');
class griditem extends component );}
}const styles = stylesheet.create(,
icon:
});export default griditem;
到此我們就完成了fetch請求並繪製介面的功能。
附:本文原始碼
fetch請求二次封裝
React Native專案實戰之fetch請求
摘要 fetch簡介 在 ajax 時代,進行請求 api 等網路請求都是通過xmlhttprequest 或者封裝後的框架進行網路請求。而在前端快速發展地過程中,為了契合更好的設計模式,產生了 fetch 框架。在 chrome 瀏覽器中已經全域性支援了 fetch 函式,開啟除錯工具,在 con...
React Native 之 專案實戰 五
可以酌情 文中內容因各人理解不同,可能會有所偏差,歡迎朋友們聯絡我討論。本章許多內容本來是要放到後面講的,考慮到有朋友可能不需要了解redux 中當我們點選首頁和海淘2個item時,會馬上獲取最新資料個數然後進行更新,這邊來實現一下這個功能。通過通知的方式監聽item點選做相應的操作,所以我們在需要...
React Native布局實戰
前輩教導我們,掌握一門新技術的最快方法是練習。因此,我找了下比較有愛,暖氣的介面。當然不是給美團打廣告了,只是覺得頁面蠻清新的。下面就是要顯示的效果 第三篇文章基本上對react native的布局基本上有個大致的認識,現在開工吧。總體上,該頁面分三個部分 1 我們約會吧及其右邊3欄 2 1元吃大餐...