一直对 RN 充满了好奇,前段时间学习并实际使用 RN 来开发了一个简单的应用。第一步从环境搭建开始。
环境搭建
分别需要安装Node,Watchman,Yarn 和 RN 命令行工具,推荐把 react-devtools 的 debug 工具也一并安装了
$ brew install yarn
$ npm install -g react-native-cli
$ npm install -g react-devtools // debug工具,可选
创建应用
只要运行下面的命令就可以创建一个名为 AwesomeProject 的 RN 项目
也可以指定使用 RN 版本号,
该命令会创建一个 package.json 的文件,就是 npm 管理依赖的文件。这个文件中需要特别注意,在 dependencies 中申明的 react 和 RN 的版本一定要配对。有一次生成后的项目运行总是报错,百思不得其解,最后才发现是版本不匹配造成的。只能默默修改版本号,然后运行 npm install 才得以解决
"private": true,"scripts": {
"start": "node node_module/react-native/local-cli/cli.js start"
},"dependencies": {
// "react": "^15.6.1",// was installed by npm but not matched
"react": "^16.0.0-alpha.12",// correct dependency version for react
"react-native": "^0.47.0"
}
}
除了依赖管理文件以外,还有 ios 和 android 两个目录用来存放原生代码,以及一些初始化的 JavaScript 文件模板,以后会用到,就不一一列举了。
初次运行
初次运行是用来检查环境是否正确的简单的反馈,根据平台运行下列命令
Android 需要事先启动模拟器或者连接真机,iOS 会自动启动模拟器。如果看到下面这个界面,恭喜你已经完成了环境的搭建,就可以开始应用层的开发了。
启动过程
到此结束也是可以的,但是还有一个问题需要解释一下,以便之后能够快速进入 RN 应用开发。如上节提到的启动命令,可以分解成两步。
步骤1. 启动服务器
一个步骤是启动开发服务器,它是用来提供运行所需的 JavaScript 文件的,当然也可以用下面的命令单独启动
服务会占用本地的8081端口,如果该端口被占用,需要依次运行下面两个命令来结束占用端口的进程
步骤2. 启动移动端
另一个步骤就是编译移动原生代码并安装运行,和平时开发原生移动应用是一样的。也可以到平台各自的目录下,ios或者android,用 IDE 打开并编译运行。
启动完成并看到上面的截图的界面,就不用反复编译和启动移动端程序,每次代码修改只需在模拟器中按提示刷新即可看到修改内容。因为 RN 的主要的逻辑代码在服务器端的 JavaScript 中,就是说每次刷新都会拉取服务器上的最新代码并重新渲染用户界面。
当然,目前提到的整个过程仅指在开发阶段,生产环境中可以更自由, JavaScript 文件的存放可以在服务器和客户端之间进行选择。