好了,FB旗下的RN应运而生,并且在一大堆跨平台方案里面杀出重围,为什么呢?cordove可以跨平台、H5可以实时更新,但是性能都比不上原生封装的RN。
说了那么多RN,那么作为一个原生开发者,在使用RN的时候有什么优势和劣势呢?
劣势方面,很明显的,全新的语言框架,全新的布局方案,可能会让很多原生开发者望而反感,对,是反感!不少的原生开发者都会产生一个这样的念头,它的性能虽然勘比原生,但是其实还是不如原生,还是有一点差距,我为什么要放弃自己辛苦学来的原生技术,投入一个新的陌生的领域呢?我投入进去可能还不如那些常年与React打交道的高手呢,我要花多少时间才能用RN做出目前用原生能达到的水平?
至少我一开始的时候,我是这样想的。但是我学习了一个星期RN后,我改变了想法,因为相比于上面所说的劣势,我发现原生开发者开发者从事RN的一个更大的优势,就是原来RN还不完善,RN的坑非常多,而且这些坑很多都不是React层面的,很多都是在原生层面上面出现的问题,虽然FB一直都在完善,但是目前还是存在,可能一段时间后还会存在,而这部分的问题,在原生代码上起码它RN 是开源的,我们可以修补,甚至拓展,就是相比于非原生跳过来的高手,你就可以更加灵活,更加接近底层,能解决当前框架解决补了的问题。
听起来好像有些可怕,不完善还拿出来使用,这不是更加坑?
但是如果前提是,你随时可以在原生和RN之间自由切换,那么有坑有什么问题?在RN开发里面,别人能解决的,你能解决,别人不能解决的,你也能解决
一个框架,即可以跨平台,还可以热更新,而且性能还可以,你还能奢求什么呢?
所以如果你是一个原生开发者,无论ios、android,我推荐你使用React Native,不为别的,就为自由自在地写自己的代码。
目前,我自己的项目是一个大杂烩,C、C++、Js、OC、swift,彼此互相调用,以后不知道会坑到谁
我的RN学习路线,分为两大部分:UI和事件逻辑,一切以快速做出一个app为前提。
环境配置,学习时间一个下午,了解整个运行的原理
fle弹性盒布局,学习时间一个下午,看着教程所有布局都测试了一遍
常用控件使用,花费了一天,不求甚解
手势和动画,花费了一天,不求甚解,到真正使用时候,慢慢研究,反正够用就好
原生与RN互相调用,解决跳转的bug,1天
原生库集成给RN使用,1天
观看成功案例,1天
就是这样,我就开始写APP,是不是很虚,很危险的感觉,一个APP无非就是UI界面响应逻辑,通过上面的学习,我已经学会了,写写UI界面肯定没有问题了,资讯类App,纯粹浏览的App,肯定够用了,至于那些需要更高性能的东西,视频解码、图像处理,底层逻辑的,我打算用原生写