优势
- 跨平台(write once,run anywhere)
- 新能流畅,几乎接近原生
- 支持热更新(CodePush或者自己搭建服务器,iOS、Android都可以)
- 大厂(Facebook)支持,社区活跃,支持的库很多,GitHub上的react-native每天都有提交。
- 可以自定义原生组件
劣势
- 学习曲线较长(JavaScript、CSS、ES6、jsx、React Native以及Android和iOS 原生的知识)
- 版本向下兼容性差(高版本会去除低版本的一些功能,导致更新RN时,程序无法启动)
- 平台兼容性(有些库Android和iOS上有差异,甚至只是单平台能用)
- 事件冲突不好处理(ScrollView嵌套ListView不能用,Android常用的嵌套滑动,在RN中很难实现)
- 性能问题(在低端手机展现效果不好)
- 社区较混乱,github上的issue处理不严肃,很多issues是在没有解决的情况下close的
- 调试体验差,虽然也支持debug模式,但有些js无法打断点。
- 自定义组件麻烦。为了保证平台兼容性,必须要有Android和iOS两种实现方式。
- 不太好埋点
React Native适用场景
- 没有复杂的交互,没有复杂嵌套滑动
- 初期版本快速迭代,希望通过热更新应对iOS上架的
- 业务较多,动态化更新内容
相关链接
2018年 React Native 官方展望(state-of-react-native-2018)
Airbnb 宣布弃用 React Native!
Udacity也弃用React Native了 !看看他们使用React Native过程中遇到了哪些问题
react native 都有什么坑?
网友评论