原文发表于我的技术博客本文主要讲解了如何运行 React Native 官方控件示例 App包含了一些 React Native 的基础知识以及相关环境的配置。原文发表于我的技术博客React Native 以及示例 App 简介关于 React Native 的简要介绍。{% blockquote http://facebook.github.io/react-native/ %}React Native 结合了 Web 应用和 Native 应用的优势可以使用 JavaScript 来开发 iOS 和 Android 原生应用。在 JavaScript 中用 React 抽象操作系统原生的 UI 组件代替 DOM 元素来渲染等。React Native 使你能够使用基于 JavaScript 和 React 一致的开发体验在本地平台上构建世界一流的应用程序体验。React Native 把重点放在所有开发人员关心的平台的开发效率上——开发者只需学习一种语言就能轻易为任何平台高效地编写代码。Facebook 在多个应用程序产品中使用了 React Native并将继续为 React Native 投资。{% endblockquote %}在官方的 Getting Started 文档中讲解了所有组件、API 以及不同平台下的使用但是官方的文档和示例代码是不带任何一个截图的理解起来比较困难特别是对于初学者。其实在 React Native 的 GitHub 中已经提供了示例 App 的所有代码我们只要下载后编译运行即可。对应的代码路径如下示例 App 运行配置的注意点依赖包安装因为 React Native 的相关组件也是依赖于 npm 的包管理所以在项目下载下来后需要初始化依赖包方法是在项目文件根目录运行npm install初始化安装即可。注意是 GitHub 获取下来的根目录因为package.json在此目录下相关知识请查阅 npm 的使用。选择相应的 js bundle 加载方式在 iOS 项目的 AppDelegate.m 文件中注意下面这段 js bundle 的加载方式的选择。{% codeblock lang:objc%}/**Loading JavaScript code - uncomment the one you want.OPTION 1Load from development server. Start the server from the repository root:$ npm startTo run on device, changelocalhostto the IP address of your computer(you can get this by typingifconfiginto the terminal and selecting theinetvalue underen0:) and make sure your computer and iOS device areon the same Wi-Fi network.*///sourceURL [NSURL URLWithString:http://localhost:8081/Examples/UIExplorer/UIExplorerApp.ios.bundle?platformiosdevtrue];/**OPTION 2Load from pre-bundled file on disk. To re-generate the static bundle,cdto your Xcode project folder and run$ curl http://localhost:8081/Examples/UIExplorer/UIExplorerApp.ios.bundle?platformios -o main.jsbundlethen add themain.jsbundlefile to your project and uncomment this line:*/sourceURL [[NSBundle mainBundle] URLForResource:main withExtension:jsbundle];{% endcodeblock %}一种你可以选择服务器路径的模式即在运行的时候使用npm start生成一个服务端供请求 js bundle另一种方式是编译生成 js 后直接打包进 App 里脱离对服务端的请求针对此示例 App 推荐使用这种方法可以装在自己的真机上随时随地打开研究。运行效果运行起来后的效果如图所示。结语React Native 从 2015 年开始热起来2016 年必将是其更加火热的一年开发易学、跨平台非常好的产品示例程序 App 也基本满足了我们学习基础组件和 API 的需求所以此文帮助您搭建好学习此技术的一个重要的环境有任何问题欢迎留言指教、交流。