转载

NativeScript的竞争者React Native:又一个用JavaScript写原生iOS应用的项目

注* 除了服务器端的解决方案 node.js 外, JavaScript在桌面应用端也有着比较稳定可靠的应用解决方案,如 nw(node-webkit) 、 atom-shell 等。不过在手机端应用方面,类似PhoneGap这样内嵌WebView的解决方案在性能和功能方面一直有着很大的局限性,JavaScript程序员一直无法很好地渗透到这个领域,在这个背景下NativeScript 和 React Native项目分别孕育而生。

几个月前,Facebook 宣布启动 React Native 项目,,一个可以让你使用JavaScript构建原生的iOS应用程序的框架 - 其官方代码 托管仓库 ,宣布开始公测(Android版应该还在开发中)。

人们过去数年一直通过  PhoneGap 的封装来实现用JavaScript和HTML5创建iOS应用程序,但为什么社区会对React Native作出这么大的反应?

注* 也许是受到 Telerik 的NativeScript 的压力, React Native的推出显得有点仓促。NativeScript 已经支持Android和iOS平台,还正在添加对Windows的支持; 但React Native目前仅支持iOS平台,二者均使用JavaScriptCore作为iOS上的JavaScript解释器。但由于Telerik一直是销售商业应用解决方案的,而Facebook有着良好的开源传统,加上ReactJS已经积累了相当人气,开发者普遍对 React Native 明显怀有更大的热情,宣布首日就积累了8K+个Star。

React Native将会是一个很重要的项目,人们对它非常期待,主要有两个原因:

1. 通过React Native,你的应用程 序逻辑编将使用JavaScript编写并运行,而您的应用程序用户界面则完全是原生的; 然后你没有办法使用HTML5来绘制UI,这是一个妥协。

2. React引入了一种新的,激进的,功能强大的方式来构建用户界面。简而言之,应用程序的UI被简单地表示为当前应用的状态(Model)。

React Native最关键的一点是,它的主要目的是将 React 编程模型应用于移动应用程序的开发。它的目标不是跨平台,一次编写随处运行。它的目标只是在任何地方都用一个框架。

原生的iOS组件

通过React Native,你可以使用标准的平台组件,如iOS上的UITabBar和UINavigationController。这使您的应用程序有着与平台原生应用一致的外观和感觉,并保持较高的质量。这些组件在React Native非常容易使用,如将TabBarIOS和NavigatorIOS集成到您的应用程序中:

var React = require('react-native');

var { TabBarIOS, NavigatorIOS } = React;

var App = React.createClass({

render: function() {

return (

<TabBarIOS>

<TabBarIOS.Item title="React Native" selected={true}>

<NavigatorIOS initialRoute={{ title: 'React Native' }} />

</TabBarIOS.Item>

</TabBarIOS>

);

},

});

整理自: Introducing React Native: Building Apps with JavaScript 和 react 

正文到此结束
Loading...