技術2 閱讀

React Native 0.85:站在新架構上的一次「打磨版」升級

React Native 0.85 發布時,官方並沒有給出那種「革命性」的宣傳語,因為這次更新本質上是在新架構已經落地的前提下,對動畫、除錯、測試等基礎設施做了一輪系統性打磨。

如果你現在正處在技術選型階段,或者正在考慮從舊版本升級,那麼這一版的訊號是:新架構已經可以視為預設前提,後續工作重心會放在體驗和生態品質上

下面從三個維度展開:0.85 帶來的核心變化、目前 React Native 架構的關鍵點,以及它和 Flutter、Ionic、原生方案在效能與生態上的比較。

0.85 帶來了什麼?

統一的動畫後端:把關鍵路徑拉回「官方掌控」

0.85 最值得一提的是引入了一個共享的動畫後端(Shared Animation Backend)。過去很長一段時間裡,React Native 自帶的 Animated 和社群裡的 Reanimated 實際上是兩個世界:一個偏簡單場景,一個為了效能和表現力把很多邏輯自己接管了。

在 0.85 裡,動畫執行的底層邏輯被下沉到 RN Core,官方和 Software Mansion 一起把動畫調度和執行路徑收斂到一套通用後端。對架構來說,這有幾個現實意義:

如果你的 App 動畫量本來就不大,這件事可能不會立刻改變體驗;但對複雜互動、重動畫產品,這是一個「長期健康度」上的利好。

除錯鏈路整理:多客戶端、TLS、測試預設拆分

另外幾個變化表面上不那麼顯眼,卻會影響日常開發體驗:

這些改動的共同特點是:沒有突然解鎖什麼炫酷能力,但是能夠減少你在工具鏈上浪費的時間。

目前 React Native 架構的核心認知

如果把版本號擋住,現在討論 React Native,很難繞開「新架構」。簡單回顧一下它的關鍵點,更利於做框架層面的對比。

從 Bridge 到 JSI:溝通方式的換代

老一代 React Native 靠的是一個「橋」:JS 和原生之間透過序列化後的訊息佇列通信,天然非同步,還要為跨語言傳遞的資料做 JSON 等級的打包和拆包。

新架構用 JSI 把這一層直接換掉:JS 可以拿到 C++ 物件的引用,雙方可以以更接近「直接呼叫」的方式互動。

這帶來的直接結果:

對於選型來說,這意味著:以前那個「bridge 是效能瓶頸」的印象,需要更新成「取決於你怎麼用 JSI 和 TurboModules」。

TurboModules 和 Fabric:模組與渲染的重構

新架構另一側是 TurboModules(新的原生模組系統)和 Fabric(新的渲染器)。

對業務方的直接影響是:

React Native 0.85 沒有在架構上再做翻天覆地的改動,而是預設你已經在這套新架構上,開始向「正常維護期」過渡——這是它在選型層面的關鍵訊號:框架本身的結構基本定型,後續重心會轉向體驗和生態品質,而不是再來一次全面翻修。

效能:React Native 0.85 處在什麼位置?

技術選型繞不開效能,所以接下來把 React Native 與其他路線放在一起看。

和 Flutter 的差異:渲染權與可控性

因此在極端效能測試裡,Flutter 通常能給出更好的首屏時間、更平滑的長列表捲動。在複雜 UI 和動畫場景,如果對峰值效能有極致要求,Flutter 會更有把握。

不過對大多數業務 App,瓶頸往往出在資料組織、渲染策略、動畫設計,而不是引擎本身。React Native 新架構 + 新動畫後端,把「能用原生執行的部分」最大化留在原生執行緒,對電商、內容、社群這類主流場景來說,已經足夠撐住體驗。如果你的團隊對 React 更熟,效能差距本身不太會成為一票否決理由。

和 Ionic / WebView 路線:體驗與複用的取捨

如果專案只需要簡單的資訊展示、表單提交,對動態互動要求不高,Ionic 等方案的成本優勢會很明顯。

但一旦進入「重互動 + 注重體驗」的業務(比如內容社群、電商、工具類應用),React Native/Flutter 這樣的「框架 + 原生」路線會更合適,WebView 路線的邊界會很快暴露出來。

和純原生開發:上限 vs 生產效率

純原生(Swift/Kotlin)不用解釋,效能和系統整合上限最高,對於對延遲極度敏感的場景(遊戲、音影片處理、車載、人機介面等)仍然是唯一靠譜的選擇。

React Native 這代新架構更多是在縮小「普通業務場景」下與原生的差距,目標是讓絕大多數頁面和互動達到「使用者感覺不出差別」的水準。

從團隊和成本角度看:

這類混合模式,是現在不少中大型公司移動技術棧的現實形態:核心效能敏感模組原生寫,外圍業務 React Native 化,用以拉高迭代效率和統一業務開發模型。

生態:不僅是「套件多不多」的問題

做選型時,框架的生態品質往往比單點效能更影響「長期幸福度」。

React Native:React 生態背書 + 新架構遷移期

React Native 背後是 React 生態,這意味著:

現實要考慮的點是:新架構的遷移並不是一夜完成的,老套件不更新、半適配的情況仍會遇到。對新專案來說,建議一開始就圍繞「已經明確支援 TurboModules 和 Fabric 的套件」做選型;對老專案,要評估一批核心依賴的維護狀態,再決定升級節奏。

Flutter:一體化程度高,路線清晰

Flutter 的生態更集中在自己的「統一世界」裡:外掛體系和官方元件比較完整,樣式和行為統一度高,桌面/Web 支援也走得比較積極。

它的問題更多是在「走到別的平台」時的體積和引擎負擔,以及團隊是否願意接受 Dart 和 Flutter 獨有的開發範式。

如果你希望未來把一套 UI 盡可能搬到桌面/Web 端,同時能接受包體和技術棧切換的代價,Flutter 是更穩的一條路。

WebView / Ionic:極致複用 vs 上限有限

Ionic 等方案最適合的對象是已經有成熟 Web 前端體系、對移動端體驗要求不高的團隊——快速交付、統一棧、低維護成本是它的主戰場。

問題也很直觀:渲染和互動完全受瀏覽器限制,遇到效能瓶頸時,很難在框架層做太多最佳化,只能在產品和互動設計層面做妥協。

原生:合規與高風險場景的保底選項

在需要強合規、高安全性的行業(金融、醫療、車載、政府專案),原生往往還是更容易走通的道路:平台官方文件齊全、工具鏈成熟、監管和審計更熟悉。

在這類場景下,即便業務層面用 React Native 這樣的跨端方案,也常常會要求關鍵流程落在原生層,或增加額外的安全審查。

最後 - 對架構/選型的現實建議

站在 0.85 這個時間點,如果你在做移動端技術選型,可以按下面幾個問題來篩:

  1. 團隊現狀:React 經驗豐富、Web 資產多,還是可以從空白開始接受 Dart?

  2. 業務特徵:主要是資訊和表單,還是有大量需要流暢互動的複雜介面?

  3. 對效能上限的要求:有沒有必須「無限接近原生」甚至超越的場景?

  4. 對多端統一的預期:只看 iOS/Android,還是希望長遠統一到桌面/Web?

結合這些維度,大致落點會是:

SHARE

分享

分享這篇文章。