React Native只有兩年左右的歷史,但已經證明它是有用的。不過,難免有很多開發者不太了解或者不贊同RN。在這篇文章中,作者重點介紹了RN的優點,并揭示了程序員應該了解的內容。
實際上,一開始整個“React”的故事都是關于web開發的。早在2011年,來自Facebook的一些人決定將JavaScript與XHP(Facebook標記語法)結合起來。 結果超出了所有人的預期:ReactJS具有JavaScript的速度(這非常快),并且是一種新的頁面渲染方法。
四年后的2015年,來自Facebook的同一團隊進一步嘗試將JavaScript應用于移動開發,于是React Native開源框架出現了。
React Native—— 真的像廣大程序員所說那么方便嗎?
React Native是一個基于React.JS庫的開源框架,允許用戶在Android和iOS平臺構建應用程序。它使用JavaScript,并通過使用Javascript以本地組件編寫的API進行操作。很多程序員都認為這是非常方便的,事實上確實是這樣。
自2015年以來,我們一直在使用React Native,并已經在其幫助下編寫了一些應用程序。在此期間,我們收集了足夠多的經驗來與程序員分享。
React Native應用程序開發的優點和缺點分別是什么? 使用React Native的主要原因是什么?
跨平臺開發
許多移動IT公司都認為開發跨平臺應用程序是React Native的主要優勢。實際上,為兩個主要平臺構建移動應用程序從未如此簡單(iOS和Android共享約96%的市場)。使用React Native,可以重復使用多達70%的代碼,然后應用一些平臺調整(主要是關于UI)。
快速的開發迭代
快速調試是程序員喜歡React Native的另一大優勢。編碼時,程序員不必花費大量時間在編譯上或每次將應用程序上傳到物理設備或模擬器。相反,所有更新可以馬上被監控,顯著提高程序員生產力并縮短開發時間。
簡化的布局
本地iOS或Android開發人員在使用UI時經常遇到一些問題。但是,React Native有另一個開發環境,讓整個過程非常簡單!事實上,他們決定讓移動UI開發類似于網站開發。因此,在使用React Native框架構建應用程序時,開發人員可以使用可輕松管理的塊進行操作。
所以,RN使整個過程快速而且不復雜,特別是對于一些有web開發經驗的人來說。
提示:為此,RN開發人員應用了Flexbox算法。
不斷完善
React Native框架在2015年創建,相對年輕。因此,不斷改進和更新功能是必需的。而且,隨著庫的數量越來越多,在移動開發中使用React Native變得越來越有益和易于使用。
組成部分
Facebook框架的另一個優點是便利的組件重用系統。React Native允許程序員存儲應用程序中最常用的元素,以便可以將其放在不同的屏幕上,而無需進行任何更改。
而且,這種方法比代碼復制更方便。為什么?因為如果對組件進行一些更改,則這些更改將自動應用于其所有副本。
畢竟,你幾乎可以得到一個原生應用程序。
許多跨平臺框架(如PhoneGap或Cordova)通過名為WebView的移動引擎呈現代碼。然而,如果你曾經使用過或者開發過這樣的應用程序,你應該知道他們的表現通常很差。
另一方面,React Native在沒有任何移動引擎的幫助下將代碼呈現給本地API。而且,這個框架提供了一組原生模塊,這些模塊是用Objective-C和Java開箱即用的。它們有助于提高計算繁重的操作(例如視頻播放)性能。最后,你會得到一個用JS編寫的移動應用程序,但看起來感覺像是原生的。
但是,一切都不可能如此完美,React Native也有一些弱點。
React Native:你應該知道什么?
不完美的導航
React Native幾乎無法處理的一件事是應用內導航。當談論顯示器之間的導航時,這是特別顯眼的。然而,你也應該記住,原生開發并沒有提供任何完美的解決方案。
文檔問題
如您所知,React Native是一個非常年輕的框架,正在積極開發。一方面,現在可能仍然面臨缺少文檔的問題,因為它在某些情況下不提供預先分解的解決方案。另一方面,由于庫經常更新,程序員必須監視所有新的變化,以免錯過重要的事情。
缺乏嚴格的語言
JavaScript(React的骨干)是一種靈活的編程語言,但它并不為開發人員提供任何嚴格的輸入或繼承。結果,開發人員可能會出現混亂和不清楚的數據流。但是,這可以通過類似于Typescript或Flow的工具輕松解決。
小貼士
React Native是Facebook創建的一個相對較新的框架,已經證明了它的實用性。這個開發環境因為基于靈活快速的JavaScript而變得越來越流行,并且結構非常清晰。React Native的主要優勢之一是可以重復使用代碼,同時為Android和iOS平臺構建移動應用程序。
如果你從來沒使用過React Native,希望看完這篇文章之后可以有心情嘗試一次。