天天看點

《React Native移動開發實戰》一一1.1 看透React Native

1.1 看透react native

《React Native移動開發實戰》一一1.1 看透React Native

在github開源。結果一天之内,就收獲了5000多顆星,受關注程度可見一斑!

?小知識:react.js conf是指facebook的react開發者大會,f8 conference是指facebook的開發者大會,github是全球最大的軟體項目托管平台,也被戲稱為“人類的代碼倉庫”。

1.1.1 react native與react.js

  想必讀者在還沒弄清react native之前,又發現了一個“新朋友”react.js(下文簡稱react),那到底什麼是react呢?它和react native又是什麼關系呢?

react is a javascript library for building user interfaces

?小知識:移動平台開發很好了解,即移動平台上(例如apple的ios平台,google的android平台)的軟體開發,開發語言和技術主要有objective c、swift及java等。而前端開發是相對于後端(又稱伺服器端)開發而言的,前端主要負責開發通過浏覽器和使用者互動的部分,開發語言和技術主要有html、css及javascript等。

  但是,facebook不僅僅滿足于react對前端開發技術的革新,又将react的設計移植到原生開發中,進而誕生了react + native結合的産物,即react native。

  是以,簡單來說:

react native和react使用了相同的開發語言javascript和相同的設計理念react。

react native和react運作的環境和平台卻是完全不同的,react native是基于移動平台(如ios、android等),而react是基于浏覽器。

1.1.2 react native的跨平台

  簡單了解了react native的由來之後,讀者或許會有這樣的疑問,開發移動平台app使用原生開發平台和語言就好了,為什麼要出現使用react native來開發移動平台app的技術呢?換句話說,react native到底可以解決什麼問題呢?

  在進一步讨論之前,筆者覺得有必要明确一下什麼是原生應用和跨平台應用。

  1.原生應用

  所謂的原生應用是指:使用原生開發語言、工具和平台開發的應用。原生應用開發的優勢在于擁有較高的平台成熟度,包括平台的穩定性、運作時的性能及完善的生态。

?小知識:所謂的“生态”應該算是比較抽象的概念,開發平台的生态圈包含了很多方面,從硬體上晶片和各種電子元器件的生産、供應,到軟體上所使用的語言、開發工具及第三方開源庫的數量品質,以及人的方面,如開發者的數量、水準等因素。

  但是,原生應用開發也不是沒有任何缺點,那就是開發成本較高,導緻開發效率相對較低。例如,當一個産品需要支援多種類型的移動終端時,就需要熟悉多個原生平台開發的工程師。

  2.跨平台應用

  為了解決産品滿足多個平台的需求,就有了所謂的跨平台應用開發。根據實作跨平台方案的不同,也就有了以下幾種常見的跨平台解決方案。

《React Native移動開發實戰》一一1.1 看透React Native

?提示:想要了解關于更多react native的架構和原理,可以參考1.1.3節。

1.1.3 解剖react native應用的結構

  在了解完這麼多關于react native的故事和優勢之後,讓我們走近react native,來進一步了解react native的原理和架構。

  react native應用的整體結構如圖1.5所示。

《React Native移動開發實戰》一一1.1 看透React Native

  通過之前的介紹和圖1.5可以看出:react native應用開發使用的是與react相同的開發語言javascript和設計思想react,而底層仍然是基于原生平台的。這樣,不同平台的适配就交由react native平台去處理,而開發者隻需要專注于react native平台應用開發本身,展現出的優勢如下。

應用層的開發變得簡單、高效和跨平台。

應用穩定性、運作時的性能和原生平台接近。

在了解react native原理之後,開發者也可以根據實際的産品需求開發自己的react native元件,以複用已有原生平台的大量優秀元件。

繼續閱讀