天天看點

React Native 介紹

一丶react native 驚喜

二丶react native 簡介

三丶react native 特性

四丶react native 優點

五丶react native 局限性

六丶建構最簡單的應用

七丶學習資料

react native 是一個使用javascript 和 react 來編寫跨終端移動應用(android 或 ios)的一種解決方案

這句話是什麼意思呢?

即使你不懂如何使用 java 或 kotlin 開發 android,或者不懂如何使用 swift 或 objective-c 來開發

ipad 或 iphone 應用也不要緊,因為 react native 幾乎不需要和它們打交道。

這句話的另一個意思呢,就是,如果你想同時開發 android 和 ios 應用,但苦于資金或者其他雜七雜八的條件,找不齊 android

或者 ios 的開發人員,那麼也不要緊,隻要你的開發人員懂前端,懂 javascript 和 react 就夠了,也能開發移動應用

當然了,這句話還意味着,隻要你招了一個會 react 的前端,那麼你就擁有 網頁、h5 頁面、移動 app 的全棧開發能力。是不是很驚喜…

現在絕大多數 app 都采用混合模型開發,固定的基礎的元件使用 java 或 swift 等原生語言開發,而偏營運的元件和頁面則采用 react native 等h5形式開發。

這樣做的好處就是原生開發者緻力于創造基礎元件,h5 緻力于營運體驗。

現在的 ios 稽核速度已經很快了,幾乎一天就有結果,但是之前,可能要稽核一周,半個月,甚至還會不通過,然後又要重新開始進入稽核等待,這對于大部分需要頻繁更新的 app 來說是不可接受的。

在這種情況下,react native 出現了,它的首打功能就是 熱更新技術。

熱更新 技術可以稍微的繞過應用商店的稽核而直接更新。這樣就可以達到快速上線的功能目的。

對于 react native,官方的介紹更能展現出它的誕生前因後果。

1. react native 讓我們可以隻使用 javascript 語言就能建構出手機app。

2. react native 采用 react 作為底層架構,如果你會 react 那麼久很容易上手 react native。

3. react native 采用聲明性元件中建立豐富的移動ui。

使用 react native,你不是在建構移動 web 應用程式,也不是在建構 html5 應用程式,更不是在建構混合應用程式。你是在建構一個真正的移動應用程式,與使用 objective-c 或 java 建構的應用程式沒啥差別的。

4. react native 使用與原生ios 和 android 應用相同的基本 ui 建構塊。如果你熟悉原生 ios 或 android

開發,那麼隻需要使用 javascript 和 react 講這些建構塊放一起。

我經常傻傻的分不清 特性 和 優點 的差別。按照我們中文的意思來講,特性 不就是 優點 麼?

算了,不糾結了,react native 有着以下的幾個特性:

1. react

底層采用 facebook 開發的 react 技術。

react 是一個視覺架構,使用 javascript 來建構網頁和移動網頁。

2. 原生

react native 内置了大量的原生元件,這比 web app 有着更強大的性能。

3. 平台多樣性

react native 開發的 app 可以運作在 ios平台 和 android 平台。

現在市面上類似 react native 的架構很多,有h5,混合 app 等等,還有那個淘寶開發的 weex 好像。即便如此,我們仍然選擇 react native,為什麼?

1. javascript

完全采用 javascript 語言。而不是某些不倫不類的看似 js 又不是 js的語言。

這意味着在語言層面我們根本不需要重新學習。

2. 跨平台

write once,run anywhere 變得可能,尤其是 android 和 ios 兩端。

3. 社群給力

國人的項目差距就在這裡,國内的很多項目,尤其是阿裡系的,看起來就是某個人的績效。一段時間後連維護都不了。

react native 有着強大的社群,有着衆多的開發者提供了各種類型的元件。

當然了,react native 也不是萬能的,它也有着自己的缺點和局限性。

react native 的缺點有兩個:

複雜的狀态管理,頁面切換。即使你會 react,也會覺得它的頁面切換有點繞。

建立新的原生元件複雜。如果你要建立一個之前從未出現過的原生元件,難度直線上升。你不僅需要懂得 android 開發,還需要懂得 ios 開發。

React Native 介紹

【b站-老陳打碼】2020前端react-native跨平台app實戰開發教程

react native 官網