React-Native的那些坑
环境搭建
这里以Mac为例,依次安装如下软件
- Homebrew - Mac上的包管理器,类似于Ubuntu的dpkg
- 使用Homebrew安装watchman,官方推荐,用于调试。命令
brew install watchman
- 使用Homebrew安装flow,可选,它是针对JavaScript应用的静态类型检查器。命令
brew install flow
- 安装Node
- 这里FB推荐的是nvm,它是node版本管理器,注意与npm区分开来。nvm可以安装多个版本的node并可以方便的切换。安装nvm参考这里
- 安装完nvm之后,安装node并初步设置。命令
nvm install node && nvm alias default node
- 安装主角React-Native,命令
npm install -g react-native-cli
创建项目
接下来FB提示我们可以创建第一个RN项目,命令
react-native init AwesomeProject
到这里就遇到了第一个坑:如果直接执行上述命令,那么不出意外,你要经过一个非常漫长的等待,即使连上了VPN,也不一定会很快。
这时候我们可以使用npm的在国内的镜像来解决这个问题,这里我用的是淘宝的npm镜像。
registry=https://registry.npm.taobao.org
这个文件默认是没有的,可以使用touch命令创建,使用vim来编辑。vim不会用?看这里
Android版只能一个Activity?
从FB提供的有界面跳转的Android Demo - UIExplorer,Movies里观察,它所有的跳转都是在一个Activity里边进行的。
从文档Sharing a ReactInstance across multiple Activities / Fragments in your app和github的issue Android apps are always one activity,not following Android activity stack guidelines里看,还是可以有多个Activity的,不过这个要尝试之后才知道。
不知道这不是Android里边的一个坑。
P.S. iOS版对应的Demo里边的跳转看着像UINavigationViewController跳转的效果,不过它没有像Android的Hierarchy Viewer这样的工具进行调试,所以不好确定是否有原生的多ViewController(可以类比Android里的Activity)的情况。
参考链接
- about react-native init AwesomeProject?
- React-Native Getting Started
- vi/vim基本使用方法
- Facebook开源React Native以及相应的IDE:Nuclide
- 一个资深iOS开发者对于React Native的看法
- React-Native android在windows下的踩坑记
- Integrating with Existing Apps
- Android apps are always one activity,not following Android activity stack guidelines #2916
- 零基础用react-native开发android app
- React Native 初探(iOS)
- React 入门实例教程