焦鋒
摘要:React Native是2015年FaceBook研究的一種新的開發APP的技術,通過JavaScript語言來開發APP,且有一次開發隨處使用的理念。因此,也是目前最火的APP前言技術之一。本文主要對該技術在APP開發中的應用進行研究,主要從開發方式、熱更新特點和方法等多個方面進行研究。
關鍵詞:React Native;app;熱更新;JavaScript
中圖分類號:TN929.53 文獻標識碼:A 文章編號:1007-9416(2017)06-0109-01
1 單純的React Native APP應用
單純的React Native應用,實際上就可以理解成是原生應用的一個Activity,通過啟動著一個Activity之后,就通過JS中的各個state狀態,來刷新各個View界面,然后一個APP應用就誕生了。在這種APP應用中,主要是由組件組成中,各個組件組裝成一個大的View。而View 主要是通過state和props來獲取所有的數據以及數據改變時更新View界面。在這種應用中,采用的是盒子布局方式,這種布局方式與原生不同,具有很大的靈活性,分主軸和次軸。然后分別可以設置其樣式。
2 原生APP與React Native APP混合開發的應用
2.1 React Native Activity的自定義
如果進行一個RN項目開發,初始化項目之后,就會有一個Activity是繼承RnActivity的。如果進行混合開發時,由于我們的Activity可能要做很多工作,還想繼承我們原生的Activity。因此,就可以自定義一個RN的Activity,無須繼承官網的Activity。假如,我們已經有了一個BaseActivity。內部可以使用路由進行跳轉。但是混合開發明顯不行,否則將無法正常的在RN和原生界面之間進行來回跳轉。即便可以,復雜度也會大大增加。經過嘗試,在一個混合項目中,可以有若干個RN的Activity,每一個Activity可以開發一個功能。只需要修改上文中的index.android。只要把入口修改了,它就會從不同的入口去找,同時在js入口文件中,要進行注冊。
2.2 原生與JS之間的相互調用
對于JS方法來說,是離不開原生應用的,React Native開發的實質還是進行的原生開發。而且有很多東西,比如硬件的mac、域名獲取或者其他只有原生方法能夠實現的功能,就必須通過原生方法來實現,然后由JS端進行調用。JS調用原生的方法相對來說比較簡單,只需要在原生中注冊Module,然后在方法名之前寫上標識@react method 即可。在JS端通過NativeModules 這個API就可以進行調用。如果想要進行Activity之間的相互跳轉,該JS的activity可以使用currentActivity來找到。然后想要跳轉到原生其他的Activity就比較容易。
3 React Native技術應用到APP中的優勢
(1)熱更新:在當前的APP應用開發中,熱更新是一個非常重要的能力。如果這個應用沒有熱更新的能力,將意味著無法及時的展示自己想要展示的內容給用戶,尤其是電商或者社交類應用,他們的APP更新能力都很頻繁,沒有熱更新的能力,將無法及時的推送最重要的更新給用戶。對于IOS開發者來說,兩周以上的審核周期更是要命,每次開發迭代一個版本都必須要通過IOS的審核機制進行審核,如果采用熱更新的方式,就可以繞過審核機制。因此,React Native所具有的熱更新能力是非常重要的。React Native的熱更新功能,主要是通過更新Bundle文件來實現。對于一個RN應用來說,Bundle文件就是要加載的前端內容。只要更新了Bundle文件,就是更新了整個APP,因此只需要做一個后臺服務,這個后臺服務具有上傳下載Bundle文件的能力。然后在客戶端每次打開的時候向服務端發送請求,看是否有最新的Bundle文件,并進行下載替換即可完成熱更新的工作。
(2)代碼重用度高:目前碼農的成本是越來越高,因此代碼的可重用是很重要的一點,代碼平臺無關性也是每一個技術人員所喜歡的。React Native的Android版本和IOS版本的代碼可以80%以上共用,這在當前主流的原生開發中是難以置信的。同時由于React Native技術是從PC端的React技術演變而來,因此React Native的絕大多數代碼也可以轉化為React來使用,進行PC端的前端開發,因此,一次開發就可以三次使用大大的降低了人力成本和時間成本,對于企業來說是非常可喜的。
(3)開發效率高,漏洞修復快:因為它代碼重用度高,且有熱更新的優勢,因此,也就有了第三個優點,開發效率比較高,且由于它的開發方法的不同,無需每次修改都要通過編譯安裝看效果,且采用模塊化的開發,大大的提升了開發的效率。由于可實時更新Bundle文件,達到每次啟動APP應用都可以使用最新的,因此可快速修復漏洞。endprint