基础对比
1,环境搭建
a)首选你要选择开发平台macOS/Windows/Linux
b)其次选择你对应的目标平台iOS/Android
,
不同目标平台要安装对应的环境依赖
比如iOS
需要Node、Watchman、Xcode
和 CocoaPods。
Android
需要Node、JDK
和 Android Studio
。
c)创建项目
执行cmd
命令 npx react-native init YourProjectName
,这里我命名为AwesomeProject
项目创建成功后可以使用相关工具打开进行编程了
开发RN
的工具有很多,选择性也比较多,比如Facebook
专门为React
开发的IDE:Nuclide
,还有做前端比较熟悉的WebStorm、Sublime Text 3、VS Code
等。
iOS/Android
:对应的开发工具创建
2,开发语言
React Native
本质上是JavaScript
框架。
RN
类似于Vue
开发,运用JSX
与一些标签对来进行一些流式布局
iOS:Object-C/Swift
Android:Java/Kotlin
3,Debug
大家才能够目录中可以看到,RN
项目一般是包括iOS
项目和Android
项目,调试的时候需要用对应的开发工具调试不同的平台。
4,开发技能要求
我所理解的最能运用RN
开发的coder需要掌握JS开发(对公用模块的绘制与功能处理)、iOS
开发、Android
开发(主要处理端对端与第三方的兼容交互,一些功能集成处理例如推送、支付等)
React Native 与原生开发的优劣
1,React Native原理
a)React
属于JavaScript
框架,每个HTML
界面可以看做一个文档对象模型(DOM
),React
框架采用组件化方式简化Web开发,可以把一组相关的DOM
和JavaScript
单独封装到一个组件类中,便于复用。
b)RN
底层是把React
转换为对应的原生API
,例如针对iOS
,RN
会在一开始生成Object-C
模块表,然后把这个模块表传入JS
中,JS
参照模块表,就能间接调用OC
的代码。
c)工作流程
2,React Native与原生的比较
a)相比原生各自维护一套(iOS、Android
)业务逻辑大同小异的代码,React Native
只需要同一套javascript
代码就可以运行于iOS
和 Android
两个平台,在开发、测试和维护的成本上要低很多。
b)能即时更新 App,原生发布更新则需要提交审核到不同的市场,发布和测试新功能的效率大幅提高。
c)动画性能。React Native
在动画效率和性能的支持还存在一些问题,性能上不如原生Api
。
d)React Native
严重依赖于Facebook
的维护。苹果在iOS
上每次技术的更新、政策的改变都会让原来使用了 React Native
代码库受到影响,等待 Facebook
和社区的修复会妨碍 App 的更新和用户体验。
e)原生应用开发人员需要更多指定给原生应用构建的模块,如访问摄像头、推送通知和其他设备传感器。
f)性能。
写在最后
何时选择 React Native
a)你想构建一款简单的电子商务App。
c)你需要尽快进入市场,在人员不够的情况下。
d)你的项目预算较少。
参考文档
https://reactnative.cn/docs/environment-setup
https://www.jianshu.com/p/5cc61ec04b39
https://www.infoq.cn/article/t3ypfdi88*gkzwhr2bpt
网友评论