React Native 是一款用来开发真正原生、可渲染iOS 和Android 移动应用的JavaScript 框架。它基于Facebook 公司开源的JavaScript 用户界面开发框架React 而产生,但React 将浏览器作为渲染平台,而React Native 的渲染平台则是移动设备。也就是说,Web 开发者现在就可以使用我们非常熟悉的JavaScript 类库来开发真正原生的移动应用。并且,由于编写的大部分代码可以在平台之间共享,React Native 可以让你更简单地同步开发Android和iOS 应用。
与Web 平台上的React 相似,React Native 也使用JSX 进行开发, 这种编程语言结合了JavaScript 和类XML 标记语言。React Native 在后台通过“ 桥接” 的方式调用由Objective-C(iOS 平台)或Java(Android 平台)开放的原生渲染接口,因此,你的应用将会使用真正原生的移动UI 组件,而不是传统的WebView 渲染方式,进而拥有与其他移动应用一样的外观和体验。同时,React Native 也为JavaScript 开放了平台接口,让你的应用能够使用平台提供的功能,例如摄像头和用户定位等。
React Native 目前同时支持iOS 和Android,今后也可能扩展到其他平台上。在本书中,我们将会同时介绍iOS 和Android 的知识,并且书中大部分代码都能跨平台运行。没错,你完全可以用React Native 来开发用于正式发布的移动应用。据了解,Facebook(https://code.facebook.com/posts/1014532261909640/react-native-bringing-modern-web-techniques-to-mobile/)、Palantir(https://medium.com/@clayallsopp/react-native-in-production-2b3c6e6078ad#.wui5g18dx)和TaskRabbit(http://tech.taskrabbit.com/blog/2015/09/21/react-native-example-app/)等公司已在使用它开发面向用户的应用。
1.1 React Native的优点
事实上,React Native 调用宿主平台标准渲染接口的方式已经使它从其他现有的跨平台应用开发方案(比如Cordova 或Ionic)中脱颖而出。目前通过编写JavaScript、HTML 和CSS 的方式进行应用开发的方案大多使用WebView 进行界面渲染,当然这种方案是可行的,但也带来了一些问题,尤其是性能损耗。同时,这种方案通常无法使用宿主平台的原生UI 组件,所以这些框架尝试去模仿原生UI 组件的行为,而模仿的效果通常让人觉得不够真实。为了模仿各种类似动画这样的细节,一般都要付出巨大的努力,然而它们很快又会过时。
相反,React Native 则将你的代码解析成真正原生的UI 组件,利用了所用平台上现有的视图渲染方式。并且,由于React 不在UI 主线程中运行,你的应用可以在不牺牲灵活性的前提下保持高性能。React Native 的生命周期与React 相同,当属性(props)或状态(state)发生改变时,React Native 会重新渲染视图。而与浏览器上的React 最大的不同在于,React Native 使用了宿主平台上的UI 元素来代替HTML 和CSS。
对于习惯了Web 平台的React 开发者来说,这意味着你可以使用熟悉的工具来开发真正原生的移动应用。在开发者体验与跨平台开发等方面,React Native 较传统的移动端开发来说也有一定的优势。
1.1.1 开发者体验
如果你曾经有过移动端的开发经历,将会对React Native 的易用性感到震惊。React Native团队已经研发了强大的开发工具并在框架内嵌入了友好的错误提示,因此使用这些强大的工具会让开发体验更加自然。
例如,由于React Native 使用了JavaScript,我们查看修改结果时不需要重新编译。相反,按下Command+R 就可以刷新应用,就和在网页上开发一样。在传统移动端开发中,编译构建应用所花费的时间会积少成多,相比之下React Native 的快速迭代就像是天赐之福。React Native 还可以让你更好地利用智能调试工具以及错误报告机制。如果你习惯于使用Chrome 或者Safari 的开发工具(图1-1),那么使用它们进行移动开发一定也会让你十分愉悦。同样,你可以选择喜爱的任何文本编辑器来开发JavaScript:React Native 不强制你使用Xcode 进行iOS 开发,也不强制使用Android Studio 进行Android 开发。
React Native开发指南——1.1 React Native的优点
书名: React Native开发指南
作者: [美] 艾森曼
出版社: 人民邮电出版社
译者: 黄为伟
出版年: 2016-6-1
页数: 221
定价: CNY 59.00
装帧: 平装
ISBN: 9787115425263