React Native移动开发实战(第2版)
上QQ阅读APP看书,第一时间看更新

第1章 React Native背景知识

1.1 React Native的诞生与发展

自从“大前端”的概念被提出以来,移动端和前端的边界变得越来越模糊,并且,近年来流行的移动跨平台技术也让前端和移动端开发人员的职责范围变得越来越模糊。从多年前流行的PhoneGap、inoic等混合开发技术,到现在火热的React Native、Weex和Flutter等跨平台技术,无不体现着移动端开发的前端化。

作为目前流行的跨平台技术框架之一,React Native是Facebook技术团队于2015年4月在早先的React前端框架基础上开源的一套移动跨平台开发框架,可以同时支持iOS和Android两大移动平台。

截至2019年6月,React Native在GitHub网站上已获得大量开发者的支持,如图1-1所示。

图1-1 托管在GitHub上React Native项目

说到React Native,就不得不说一下它的诞生过程。早期,Facebook曾致力于推动HTML 5移动端应用的开发,但最终无法实现媲美原生App的用户体验,并且设备性能越差,体验差距越明显。最终,Facebook放弃了HTML 5方案,转而开始使用React Native框架来开发移动端应用。

在React框架的基础上,React Native框架前台的JavaScript代码通过调用封装的Android和iOS原生平台的代码来实现界面的渲染操作,因而调用原生代码的App的性能远远优于使用HTML 5开发的App性能。

由于React Native使用React前端语法来开发移动Android和iOS跨平台应用,因此,对于熟悉React框架的前端开发者来说,不需要再系统学习Android和iOS的特定语法即可开发出媲美原生体验的移动应用。

同时,React Native使用流行的JSX语法来替代常规的JavaScript语法,提高了代码的可阅读性。JSX是一种XML和JavaScript结合的扩展语法,因此对于熟悉Web前端开发的技术人员来说,只需很少的学习就可以上手移动应用开发。

React Native框架的优势在于,只需要使用一套代码就可以覆盖多个移动平台,真正做到“Learn Once,Write Anywhere”。React Native框架底层使用的是JavaScriptCore引擎,基本上只需要更新一下JavaScript文件,即可完成整个App的更新操作,非常适合用来开发App的热更新功能。

除此之外,React Native框架提供的开发和调试环境也是非常友好的,如图1-2所示。尚在开发的App在模拟器或真机中运行时,开发者只需要像刷新浏览器一样,就可以即时查看到代码修改后的效果,并且还可以在Chrome浏览器中查看控制台输出、加断点、单步调试,等等,整个过程完全就是JavaScript开发调试的体验,非常畅快。

图1-2 React Native开发调试程序