iOS 写给iOS开发者的React Native学习路线(转)

 

我是一名iOS开发者,断断续续一年前开始接触React Native,最近因为工做须要,专职学习React Native也有一个多月了。网络上知识资源很是的多,但能让人豁然开朗、迅速学习的仍是少数,我整理出的这些文章对于初学者来讲是比较有好的,但愿经过整理个人学习路线,能给一样做为iOS开发者,想学习React Native的朋友们一些帮助。

既然是写给iOS开发者的,那么我默认你已经掌握iOS原生应用开发的基本知识,因此对iOS原生开发的相关内容不作解释说明。javascript

React Native概念介绍

名词解释

首先列举几个关键词:html

  • React
  • Native
  • React Native

这三个词其实没有太大关系,咱们逐个来解释:前端

  • React:近几年Web前端领域很是火热的一个开发框架React.JS,其核心思想是将视图组件化,经过更新组件的state来渲染出组件。
  • Native:这个词从字面理解就够了,就是指原生的。前几年有个很是火热的跨平台开发框架-- PhoneGap(现称Cordova),那就不是原生的开发方式。原生就要使用对应平台的特定语言和框架进行开发,好比使用Objective-C或Swift开发的iOS应用。
  • React Native:结合了这两个词,咱们能够简单地获得结论:使用React框架进行原生方式的开发。

实现原理

咱们都知道在iOS平台上,苹果提供了一个JavaScriptCore的framework,能够进行JavaScript语言的解析,React Native经过屡次封装定义,最终实现了在JavaScript语言中调用Objective-C的类和方法。具体的原理咱们如今还没必要深究,后文的学习路线中会有提到。
因此既然是调用Objective-C的类和方法,性能上固然是不差的(但也不完美),因此这也是React Native相比其余跨平台开发方式的一大优点。java

评价

  • 跨平台:目前React Native官方已经支持iOS、Android两个平台的移动设备,民间也有一些大牛在作macOS、tvOS,甚至UWP平台的适配。但因为不一样平台特性不一样,并不能一份代码在全部平台上直接运行,React Native的思想是「Learn once, write anywhere」,咱们须要针对不一样平台的特性写出不一样的代码,尽可能保持组件的高可复用性。
  • 性能:官方宣称性能堪比Native,实际使用中咱们会发现几个问题,好比复杂视图渲染出View层级过多、ListView(等同于iOS上的UITableView)无重用机制、有些组件存在内存泄露。这就会致使在部分低端Android机型上的性能过差,复杂的、大型的应用会有明显性能问题。
  • 热更新:因为App Store应用商店发版迭代效率问题,热更新成为了iOS平台很是渴求的功能,可喜的是React Native的热更新能力很是好,经过将JavaScript代码部署到服务器中,运行过程当中便可从新reload整个界面。
  • 学习成本:对于iOS开发者来说,要了解至关数量的Web前端开发知识才能够进行开发,对于Web前端开发者来说,对于原生性能调优则须要原生开发知识和经验,因此说学习成本略高。
  • 开发效率:Android和iOS平台可复用不少组件,仅部分代码须要各自平台分别维护,因此比开发两个平台原生应用效率要高得多。加上自己可动态渲染的能力,不用从新编译,Command⌘+R便可从新渲染界面,开发效率更是惊人地快。

学习路线

按照顺序进行学习便可。react

开发环境配置

你的电脑若未安装Homebrew、Node.js、WatchMan等工具,请参照:git

若已安装Homebrew、Node.js、WatchMan,请直接:es6

对于IDE/Editor的选择,目前能够有Sublime Text、VSCode、WebStorm、Atom+Nuclide、Deco选择。我我的比较推荐的是VSCode和WebStorm。如下提供两篇关于IDE的设置。github

JavaScript

首先是最基础的JavaScript教程,快速过一遍便可。web

ES6

ES6也称ES2015,是JavaScipt语言的较新的一种标准,在React Native开发时,咱们建议使用这种标准。redux

语法规范

JavaScript自己变化很快,这份由Airbnb维护的语法规范是使用较为普遍、全面的,颇有参考性。

React Native

快速入门

因为会有一些开源项目和开源组件使用ES5标准进行开发,因此应该看得懂ES5代码。
React/React Native 的ES5 ES6写法对照表 - react native 中文网

布局

组件

React with Redux

热更新

原理

推荐资源

最后附上原文连接:

相关文章
相关标签/搜索