这不是一篇关于叫你如何使用 react-native 的文章,学习react-native的资源网上都有,推荐从官方英文文档入手。因为我本身有一些前端的基础,再加上在iOS客户端也有一定的经验,所以跟着文档开始相对来说比较顺的。

对于RN的基础部分需要掌握 react,jsx 语法,会使用 Flexbox 布局,熟悉RN一些基础组件的使用,比如ListView,ScrollView等等。

进阶部分需要知道 js 如何与 native platform 通信,使用导航器跳转页面,动画等等。

高级部分需要会在RN中使用原生模块,编写原生UI组件来扩展RN组件,在复杂的应用中如何结合redux管理数据流等等。

以上这些在文档中基本都有介绍。

然后谈谈我在使用RN之后的几点感受:

现在用 RN 来开发 App 在体验和性能上应该是没问题的,但需要解决的问题还不少。

  • 比如 react-native init 出来的项目,开发中怎么解决刷新的问题,每次改一点UI,刷新一下又得回到首页::>_<::。

  • 如何拆分bundle?将 main.jsbundle 分开为 common.bundlebusiness.bundle,不能像 webpack 一样,想要做个性化的配置很麻烦,看知乎专栏上携程是如何做React Native优化的 这篇文章,自己暂时还无法消化。

  • 还有热更新问题,也看了很多文章,像58,去哪儿,携程都有自己的一套方案。服务器做好diff,然后在客户端合并,具体实现还得仔细推敲啊。

  • RN的页面跳转(比如说使用react-navigation)都是在同一个 UIViewController 容器里进行的,也就是说每 push 一个页面都叠加中同一个 UIViewController 中,感觉这很不原生啊……。好像Wix团队的react-native-navigation解决了这个问题。