codecamp

网络

React Native 的一个目标是成为一个游乐场所,在这里我们可以尝试不同的体系结构和疯狂的想法。自从浏览器使用起来不够灵活,我们别无选择,只能去实现整个堆栈。在这个我们并不打算改变什么的地方,我们试图尽可能忠实于浏览器的 APIS。网络协议栈是一个很好的例子。

XMLHttpRequest

XMLHttpRequest API 是在 iOS networking apis 之上实现的。与 web 显著的区别是其安全模式:由于没有 CORS的概念,你可以从互联网上的任一网站上进行阅读。

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();

请按照 MDN Documentation,一个对 API 进行了完整描述的文档。

作为一个开发人员,你可能不会直接将 XMLHttpRequest 对象作为他的 API,因为这是一个非常繁琐的工作。但事实上,他的实现和与浏览器 APIS 的兼容能够使你使用第三方库,例如,直接来自 npm 的 Parse 和 super-agent

Fetch

Fetch 是一种更好的网络 API,它的工作是通过标准委员会完成,并且已经在火狐浏览器上可以使用。默认情况下在 React Native 上也是可用的。

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


定位
计时器
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }