網(wǎng)絡(luò)

2019-08-14 14:25 更新

React Native 的一個(gè)目標(biāo)是成為一個(gè)游樂(lè)場(chǎng)所,在這里我們可以嘗試不同的體系結(jié)構(gòu)和瘋狂的想法。自從瀏覽器使用起來(lái)不夠靈活,我們別無(wú)選擇,只能去實(shí)現(xiàn)整個(gè)堆棧。在這個(gè)我們并不打算改變什么的地方,我們?cè)噲D盡可能忠實(shí)于瀏覽器的 APIS。網(wǎng)絡(luò)協(xié)議棧是一個(gè)很好的例子。

XMLHttpRequest

XMLHttpRequest API 是在 iOS networking apis 之上實(shí)現(xiàn)的。與 web 顯著的區(qū)別是其安全模式:由于沒(méi)有 CORS的概念,你可以從互聯(lián)網(wǎng)上的任一網(wǎng)站上進(jìn)行閱讀。

var request = new XMLHttpRequest();
request.onreadystatechange = (e) => {  if (request.readyState !== 4) {    return;
  }  if (request.status === 200) {    console.log('success', request.responseText);
  } else {    console.warn('error');
  }
};
request.open('GET', 'https://mywebsite.com/endpoint.php');
request.send();

請(qǐng)按照 MDN Documentation,一個(gè)對(duì) API 進(jìn)行了完整描述的文檔。

作為一個(gè)開發(fā)人員,你可能不會(huì)直接將 XMLHttpRequest 對(duì)象作為他的 API,因?yàn)檫@是一個(gè)非常繁瑣的工作。但事實(shí)上,他的實(shí)現(xiàn)和與瀏覽器 APIS 的兼容能夠使你使用第三方庫(kù),例如,直接來(lái)自 npm 的 Parse 和 super-agent。

Fetch

Fetch 是一種更好的網(wǎng)絡(luò) API,它的工作是通過(guò)標(biāo)準(zhǔn)委員會(huì)完成,并且已經(jīng)在火狐瀏覽器上可以使用。默認(rèn)情況下在 React Native 上也是可用的。

fetch('https://mywebsite.com/endpoint.php')
  .then((response) => response.text())
  .then((responseText) => {    console.log(responseText);
  })
  .catch((error) => {    console.warn(error);
  });


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)