React Native优点:跨平台、学习成本低(一次学习,两个平台)、性能高(非浏览器渲染,独立引擎)、动态更新(构建自己的更新服务器,无需频繁上架app store)等。
一 、环境搭建:
1、安装node.js
2、运行 npm -v 查看node.js的版本
3、安装react native命令行工具
npm install -g react-native-cli
4、执行命令可查看帮助
react-native --help
5、设置npm镜像服务器,我选择的是淘宝镜像,命令行安装方式为:
npm config set registry https://registry.npm.taobao.org
npm info underscore (如果上面配置正确这个命令会有字符串response)
也可通过修改配置文件来设置。
6、初始化项目
react-native init MyProject
等待几分钟后,会出现一堆提示,其中最后的提示是如何运行:
在ios系统上可以运行两个app,在win上只能跑android app,因为无法安装ios模拟器。
二、项目启动(夜神模拟器)
A.命令行方式
1、启动夜神,进入夜神bin目录,运行:
adb connect 127.0.0.1:62001
2、执行完毕后,进入项目根目录,执行命令
react-native run-android
会启动js本地服务器
3、启动模拟器或者连接真机
4、执行过程中报错 sdk location not found,此时就需要手动指定一下sdk路径,进入根目录下的android目录,新建local.properties,指定sdk:
sdk.dir=D\:\\sdk
B.通过android studio启动
1、打开android studio–file–open选择项目根目录下的android,然后确定打开。像原生app一样run。
项目运行可能会出现著名的小红窗报错,报错信息第一行:
React Native unable to load script from assets index.android.bundle on windows……
我的解决方式:
在src/main下新建目录assets,然后进入项目根目录,打开命令行,执行命令:
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
注意:我的目录下是index.js,有的老版本是index.android.js,所以命令也应该相应地修改。
再次运行,运行成功:
三、开发工具
我用的webstorm,而关于破解方式,参考 http://idea.lanyus.com/
疑问:webstorm是不是不能彻底删除项目,需要手动删除?
四、夜神模拟器
参考:
https://www.yeshen.com/blog/reactnativeyeshen/
https://www.jianshu.com/p/eefe40b6234d
1、打开夜神安卓模拟器
2、在run-android前先执行“adb connect 127.0.0.1:62001”,执行此命令是连接到夜神模拟器(端口默认是52001,我的是62001)
3、执行下“adb devices”查看下是否有连接设备,没有或者状态是offline就要查看下第二步的IP和端口是否正确。
4、打开夜神模拟器的设置中的开发者模式,点击摇一摇按钮,我得点三次才能唤出开发者菜单,设置上ip和端口,ip为电脑端ip,通过ipconfig查到得,在最新版的webstorm中已经默认配置了安卓调试,直接run即可。
五、参考教程
1、阮一峰 《ECMAScript 6 入门》http://es6.ruanyifeng.com/
2、RN中文文档 https://reactnative.cn/docs/0.51/getting-started.html
3、贾鹏辉的技术博客 http://www.devio.org/
4、CommonJS 规范 http://javascript.ruanyifeng.com/nodejs/module.html
5、Webpack https://www.jianshu.com/p/42e11515c10f http://www.jqhtml.com/7626.html
6、慕课网 https://www.imooc.com/learn/808