React Native-目前最火的前端技術
React Native 是 Facebook 推出的一個用 JavaScript 語言就能同時編寫 ios,android,以及后臺的一項技術,今年9月 發(fā)布了 android 版本,又在程序員里面掀起了一波小高潮,不斷有喜歡嘗鮮的程序員投入到這個領域。
用大白話說,就是從此一名程序員自己就可以創(chuàng)業(yè)了,他只用這一門技術,就可以同時寫出 androidapp,ios app,以及后臺應用程序,并且,請注意這里,它可以做到實時熱更新(就像網頁一樣,改了一個字體,隨時可上線),app 也能做到隨時都能更新了,第一段講的那個需求可以分分鐘秒殺解決,不用新發(fā)版本,只需在服務器改動一下代碼即可,是不是很牛逼,是不是很牛逼,是不是很牛逼,真的很牛逼。
到這里,你只需要理解一句話,就是 Facebook 提供了一套解決方案,它利用 JavaScript 作為開發(fā)語言,可以同時來編寫前端,移動終端,后臺應用程序。
我們再來講講,為什么 React Native 受到了如此大的關注,以及它的優(yōu)越性到底在什么地方。
目前,一個成熟的互聯(lián)網產品基本囊括了:移動終端和網頁兩種主要形態(tài)。在移動終端 app 和網頁的開發(fā)歷程中,涉及了很多技術角色:前端開發(fā)(俗名叫做網站的),移動終端開發(fā)(android 和 ios 開發(fā),現(xiàn)在滿大街都是),后臺開發(fā)(他們的程序大多沒有界面,主要是為網頁和 app 提供數(shù)據(jù)和保障服務的穩(wěn)定性),每個角色各司其職,分別需要不同的技能,比如前端開發(fā)需要精通 html,css,javascript 這些基本的 web 語言知識。Android 開發(fā)用 Java(這個詞讀 “扎瓦”,別讀成了 “加瓦”,讀成這樣很 Low B 的)語言編寫,ios 開發(fā)用 Objective-c(把他想象成當年過計算機二級的那個 C 語言就可以了)編寫。后臺開發(fā),有的公司用 Java,有的公司用 C++,用啥的都有,能滿足性能需要就可以了。
已經看崩潰了吧,對于一個非計算機專業(yè)的人,根本不會理解他媽的為什么要存在這么多語言,為什么這里要用 C 語言,那里要用 C++,有的地方要用 Python,而又有很大的一個人群對你高呼:“PHP 才是世界最好的語言”。其實他們每種語言都有不同的使用場景,有的語言效率高,有的語言語法更簡潔漂亮,有的是專為后臺而生,有的是特定場景下的唯一選擇。如果你還聽不懂,我們就用大白話做個比喻,為什么避孕套有的是螺紋的,有的是顆粒的,有的是延時的,有的是超薄的,還有一個品牌號稱一只手就可以打開的,它們也都是依據(jù)個人身體狀態(tài),以及不同場景分別發(fā)揮各自的強項。你隨便類比,任何一個領域,都有很多不同的工具來滿足不同的場景,是需求決定了當前狀態(tài)。
現(xiàn)在好了,React 整套解決方案完成了江湖統(tǒng)一,F(xiàn)aceBook 也號稱這們技術是 “Learn Once,Write AnyWhere”,學習成本只有一次,卻完成了所有開發(fā)角色的統(tǒng)一。
這意味著:
- app 將來都是可像網頁一樣熱更新,隨時發(fā)布。
- 對于一名開發(fā)人員,將再也沒有前端,終端,后臺的區(qū)分,他所關注的就是做一整套應用程序,人力將得到最大幅度的整合與釋放。
- 代碼復用將會是主旋律,因為是一種語言,大家重復造輪子的成本會越來越節(jié)省。
目前,React Native 也還是有一些缺點的,比如他的 sdk 組件包 size 還比較大,crash 還比較多,在 ios 上支持的內容已經相當不錯,android 還屬于初級階段,但是目前最新的版本也才是 0.16,相信再過一年, 一定會牛逼閃閃。