react-native - 学习ReactNative除了要有前端基础,另外是不是最好有原生IOS和安卓的基础比较好?

查看:261
本文介绍了react-native - 学习ReactNative除了要有前端基础,另外是不是最好有原生IOS和安卓的基础比较好?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我看到知乎上很多人说React Native到现在都很多坑,要结合原生的知识才好好解决一些兼容问题或者是其他问题。
其实目前市场很多软件功能都没那么多奇异功能,都是增删改查,那么实际运用起来是不是没有那么多问题,已经可以用来开发App?

解决方案

来说说看法,供参考。

RN(React Native)的卖点与优势

跨平台

除了跨Android与iOS,实际上RN也跨了Web平台,与React业务逻辑都一样只是渲染对象的不同。

省成本

因为"跨平台"的节省时间与人力成本。

开发群体庞大

因为RN是设计给前端或JS开发群体使用的,用于开发移动App,这个开发群体可能比原本的Android与iOS开发群还庞大,对人员招募与培训有很多好处。

性能接近原生

RN必定无法取代真正以原生语言与工具开发出App的性能与灵活性,但以性能来说可以接近。操作介面或特效来说或许不足之处还很多,但也可以接近。而且一定程度上比使用WebView的Hybrid或H5开发方式的性能来得好。学习曲线比Hybrid或H5高些,比原生语言工具(Android->Java, iOS->Swift/Objective-C)低些,这是以作同样的功能所要学习的时间与基础而论,很少有人可以精通两种移动原生语言工具,通常会择一专精。

RN的劣势与不足之处

项目过于年轻,不成熟

RN最早是一个在2013年FB(Facebook)内部的黑客松项目,经过2年左右的实作,在2015.1面世,所以算一算也差不多二年的时间,一开始也只支持iOS,2015.9左右才发表支持Android的版本。在面对已经这么久的Android与iOS的开发市场,RN算是一个很年轻的项目,它的资源、教程、周边套件等等…都完全不能与现有的移动开发平台相比。当然,RN也支持不了最新的Android或iOS特性,在稳定上仍有很多不足之处。甚至在某些实作上角度来看,可能还比已经发展很久的Hybrid App或H5 App资源更少,更不稳定。

React/Redux/ES6是另一些门槛

RN是建构在React的基础之上,Redux算是React整体应用的状态管理框架,ES6则是2015年确立的JS语言新标准。对于现有的前端/JS开发群体来说,这些门槛仍然需要先跨过,没先学过是用不了RN的,这是实在话。这些门槛看起来似乎不高,但对于既有的已经使用jQuery等框架与库的开发群体来说,是一个观念的大转向,能否接受就看每个不同的需求角度,与接受程度。

跨平台所面临到的其它问题

有作过移动双平台的App经验的开发者便知,实际上有些介面是只有某个平台上才有的,有些功能在两个平台上的设计或业务逻辑是不同的。当跨平台变成一个主要议题后,要怎么调配两个平台上的操作介面,或是撰写相等功能,就变成一个重要的考量重点。跨平台需要在不同之处,取舍其中的平衡点才有办法达成。这一部份,仍然是RN一个很大的发展空间,说实在话,这部份RN还正起步而已,这类的问题要解决的可能还有很多。

RN是给哪种开发者的用的

前端/JS开发者

这是这个技术发展出来的主要对象群体,RN用的是JS语言,版面与样式用的是接近CSS语法的css-layout(现已改为Yoga)项目。所以这项技术的吸引的主要对象就是前端/JS开发者,这个群体十分庞大,根据国外知名技术讨论区stackoverflow的2016年调查,以职位区分,前端/全端/后端加起来占了46%的受访者(后端即用Node.js),而移动开发只有8.4%,当然后端与全端并非全然的是使用JS语言开发的,不过在全端中有8成是使用到JS语言,后端有5成左右使用JS语言,在移动端有29%是也是用JS语言开发的。差不多这样比较,你可以想见这个面向的开发群体就比整个专门开发移动端的群体大很多。

原本的移动端开发者

上面已经有说过了,很少有开发者能精通两大移动平台的,RN自然可以吸引一些小规模的、功能上较为简单的移动平台App开发者。这是由于跨平台与接近原生性能的优势所促使的一类开发群体。

RN的学习者建议

如果你是原本的移动(Android/iOS)开发者

嗯,大概不如你的预期,RN没那没美好与稳定,要什么没什么,实际上操作介面很多没跨平台。

我会建议你暂时先不要用在复杂的项目上,或是再观望一阵子。

如果你是前端/JS的开发者

RN是目前让你实现往移动端App开发路的较理想选择。但不需要期望太高,RN可能还没那么完备,特效、游戏、VR、AR、3D什么的,都不容易实现,基本的小应用或商务应用是没太大问题。


最后,认真地回答一下题主的问题如下:

学习ReactNative除了要有前端基础,另外是不是最好有原生IOS和安卓的基础比较好?

看要作什么了。

RN仍保有与Android应用或iOS应用整合的能力,假使你要开发的应用是有一部份可以套用现成的Android应用或iOS应用才作得到的,那当然就要有原生iOS和Android的基础。

如果并没有,那大概只要学怎么打包应用,换App图示与前导图片与上架就行了。

...那么实际运用起来是不是没有那么多问题,已经可以用来开发App?

有很多问题的,坑到处都有是实情,但也已经可以开发App了。不过,也是看你要作什么。

RN官网有一个实例App演示页,里面就有很多用RN的App,中文App有手机百度、QQ、蜂鸟众包、惠首尔、手机京东、QQ音乐、QQ空间、昨日热推等等。

新技术原本是这样,问题本来就会很多。不过用得人多问题自然就容易找到解决方式,未来也会发展得愈快愈好,全凭你要用什么角度来看或比较,有人会抱怨自然是因为对这门技术怀有一些期待,期待与实现的落差造成了不满意,当然这也不一定就是坏事,从来没有说一门技术可以满足所有的开发应用,RN今天面临到的问题是更艰难的,这些同样也在H5与Hybird App中面临到,但至少它给出了一个新的发展方向,这是至少是一种创新的作法。

RN只是提供另一个在移动端应用开发的选项,你应该更理解的是它有什么优点与缺点,以及目前它所有能作的,至少我会认为这会比较客观些。

这篇关于react-native - 学习ReactNative除了要有前端基础,另外是不是最好有原生IOS和安卓的基础比较好?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆