? ? ? ? React Native 是由Facebook發(fā)布的開源框架,它的宣傳語是“Learn once,write anywhere”,似乎是在標(biāo)榜著React Native在手,在編程的世界里走遍天下都不怕,這消息一發(fā)出,就在開發(fā)人員內(nèi)部掀起了一陣小高潮,一些人員感激涕零的表示:跨平臺呀跨平臺,這簡直就是開發(fā)者的福音啊,另一些人員則表示:任何宣傳一技在手,走遍天下的技術(shù)都是紙老虎,沒有辦法走到最后。那么,為什么在開發(fā)人員中會出現(xiàn)這兩種截然不同的反應(yīng)呢?
但凡經(jīng)歷過跨平臺移動應(yīng)用開發(fā)的開發(fā)者都會有一種無賴的感覺—把同一套UI界面、業(yè)務(wù)邏輯在不同的平臺上各實(shí)現(xiàn)一遍實(shí)在是耗時(shí)耗力而又沒有什么創(chuàng)新的工作。多年以來,業(yè)內(nèi)很多專家都會希望能將多個(gè)移動平臺上的應(yīng)用開發(fā)統(tǒng)一到同一個(gè)框架下。但這些嘗試因?yàn)椴荒茏龅阶詈玫摹霸w驗(yàn)”而不被開發(fā)者認(rèn)同。
15年,F(xiàn)acebook公司的一幫天才工程師終于推出了React Native,測底解決了這個(gè)問題。不僅如此,F(xiàn)acebook公司還開源了整個(gè)項(xiàng)目,讓更多的移動應(yīng)用開發(fā)者能參與React Native的演進(jìn)過程,并在給自己的移動應(yīng)用開發(fā)中使用React Native進(jìn)行跨平臺移動應(yīng)用開發(fā)。
React Native 是由Facebook發(fā)布的開源框架,它的宣傳語是“Learn once,write anywhere”,似乎是在標(biāo)榜著React Native在手,在編程的世界里走遍天下都不怕,這消息一發(fā)出,就在開發(fā)人員內(nèi)部掀起了一陣小高潮,一些人員感激涕零的表示:跨平臺呀跨平臺,這簡直就是開發(fā)者的福音啊,另一些人員則表示:任何宣傳一技在手,走遍天下的技術(shù)都是紙老虎,沒有辦法走到最后。那么,為什么在開發(fā)人員中會出現(xiàn)這兩種截然不同的反應(yīng)呢?
目前,一個(gè)成熟的互聯(lián)網(wǎng)產(chǎn)品一般都有PC端和移動端兩個(gè)產(chǎn)品,那么在開發(fā)這兩個(gè)產(chǎn)品的時(shí)候,技術(shù)開發(fā)人員主要承擔(dān)三個(gè)部分的角色:一是前端開發(fā),主要用來做網(wǎng)站的頁面設(shè)計(jì)和美化的部分,他們主要涉及到的技術(shù)開發(fā)語言包括HTML、css、Js等基礎(chǔ)的Web語言,二是移動終端開發(fā),現(xiàn)在市面上主流的系統(tǒng)就是安卓系統(tǒng)和IOS系統(tǒng),其中安卓系統(tǒng)主要使用Java,IOS主要使用Objective-c,三是后臺開發(fā),主要是給產(chǎn)品提供數(shù)據(jù)和服務(wù)的穩(wěn)定性,這方面的開發(fā)基本不怎么涉及界面,開發(fā)語言也是仁者見仁智者見智,有的使用Java,也有使用C++等等。這三類開發(fā)人員各司其職,互相配合,共同開發(fā)產(chǎn)品。
那么,我們可以從一個(gè)互聯(lián)網(wǎng)產(chǎn)品的開發(fā)模式中看出,一個(gè)計(jì)算機(jī)開發(fā)語言是沒有辦法獨(dú)立完成一個(gè)產(chǎn)品,它需要開發(fā)人員掌握各種技術(shù)并且嫻熟運(yùn)用,而開發(fā)人員的精力是有限的,所以一個(gè)“Learn once,write anywhere”的語言對于他們來說是迫切需要的,所以大家,就不難理解當(dāng)React Naive發(fā)布時(shí),他們難以言喻的激動心情,但是“存在即合理”,這么多語言經(jīng)過這么多年的大浪淘沙仍然存在,就證明它們是合理的,我們需要保持高度清醒。
React Native的發(fā)布雖然讓人激動,但是毫無疑問的是它并非完美無瑕,有很多缺點(diǎn)讓我們不得不重新來審視它。1.組件不全,第三方組件也不全,遇到某些特殊功能,需要搗鼓很久。2.性能并非媲美原生,還是有一些損耗的,特別是交換大數(shù)據(jù)的時(shí)候。3.ios和android代碼并非通用,有可能會需要維護(hù)兩套,或者在代碼內(nèi)做一些判斷。并非網(wǎng)上大家說的,寫一次代碼,多端通用,尤其是實(shí)際開發(fā)的時(shí)候,還是需要了解底層原理,自己開發(fā)跟原生橋接的組件,這個(gè)對普通前端來說是一個(gè)很大的挑戰(zhàn)。所以,很多開發(fā)人員都斷言React Native無法走的很遠(yuǎn)。
事實(shí)上,React Native并不像開發(fā)人員所期望的那樣一勞永逸解決了跨平臺的問題,也不像另一些人員預(yù)料的那樣見光死,相反,它正以著自己的腳步向前發(fā)展。在Facebook F8開發(fā)者大會上,在和三星、微軟的合作下,React Native應(yīng)用能夠?yàn)閃indows、Xbox、智能電視和可穿戴設(shè)備編譯使用。微軟現(xiàn)已支持在Universal Windows Platform(UWP)平臺上使用React Native框架,同樣那些為Windows編譯的應(yīng)用程序也能訪問React Native工具。
最后想說的是,這是一個(gè)互聯(lián)網(wǎng)的時(shí)代,相信隨著未來的發(fā)展,互聯(lián)網(wǎng)開發(fā)生態(tài)會積累出更加優(yōu)秀的框架,不管是React Native還是其它框架,它們一定會支撐更加偉大的產(chǎn)品出現(xiàn)。