每当一个技术的引入,势必都有它适合的群体才得以繁衍。
![](https://img.haomeiwen.com/i5261964/1db4e8d53fe5cd10.png)
React Native 是 Facebook 于 2015年初推出的一个开源框架,实现以JavaScript 开发移动应用,该框架基于 Facebook 于2013年推出 React 框架,支持原生控件的调用。
React Native 的一些优势
- 跨平台开发,可以写一套代码来两端并行开发
- 实时远程调试,可以直接修改查看效果
- 效率高,维护成本低下
- 趋向于动态更新
为何 React Native 受到好多移动开发者的青睐?
- JavaScript 使用门槛低、开发成本低
- JavaScript 是 Netscape 公司开发的一种基于浏览器客户端的、面向对象的、解释性脚本语言。在移动端(iOS 和 Android 平台上)由于浏览器采用Webkit内核,因而在开发时完全无需考虑浏览器的兼容问题,进一步降低了JS的开发成本,这也是众多跨平台开发工具采用JS的原因之一。
特点:
- 语法简单、使用灵活
- 跨平台:所有移动、PC平台都继承了内置浏览器,对JavaScript有很好的支持
- 事件驱动式的设计思想,使开发思路清晰
- 单线程处理,没有复杂的线程机制
-
Facebook技术的支撑
- Facebook 于2013年5月开源 React 项目后,在2015年开源基于 React 的 React Native 项目,由此可见 Facebook 在前端布局已久,React Native 的面世可谓厚积薄发,后面有强大的团队在开发和维护React、React Native项目,由此可见,在这样背景下的公司支持可能会有很好的发展。
这其中的优势要想利用好其实并不容易,一旦正式项目,应该会后患不断,填坑的时间会很长。 必须在RN中有足够的沉淀和技术积累,然后才可以在体验上做的更好,力量也更集中。
React Native的一些劣势
- RN目前不太稳定,版本更新快,1.0版本至今未出
- RN动画效率低下,需要很多地方优化,这点不如Native
- 使用RN后,app体积增大(可通过替换和优化减少体积)
- RN开发中很多需要绑定objc jS也需要对应的做兼容处理
- RN有些库测试的少,质量薄弱。
Facebook公司也只是在一些小的工具上面使用RN,加上项目本身开源驱动的,和原生比较起来缺失了很多特性和可定制化。
就目前的迭代情况来看,彻底替代原生几乎无可能,因为很多方面还不完善,第三方开源库,官方自己推的控件,框架,从生态到现有的车轮,还无法和原生媲美,想要完善生态,迭代出高美观度和高性能的控件,还需时日。
相关讨论
必须承认,RN不是JS工程师就可以搞定的。也不是客户端Native开发工程师可以搞定的,因为自身开发来说,JS需要执行Native原生的代码,那么就经常需要和原生来打交道,所以必须对于两者都需要兼顾,和必须有足够的技术积累之后,体验才可以更好,力量才可以更集中。
RN虽是一个不错的选择,但是并不代表可以替代原生应用,对每个技术的实施,无论我们开发Native,还是hybrid,还是React Native。都需要了解它的实质性作用,要确切所使用的技术优势在哪里,方便在哪里,是否有利大于弊之后,才能付诸于我们的开发。
相关学习
- 无论怎么说,它既然被大家使用,那么它就有存在的意义。
RN的相关技术学习:
RN在OSX环境集成
网友评论