自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

React Native 0.75 重磅發(fā)布:性能飛躍與重要更新全面解析

開發(fā) 前端
React Native 0.75 引入了關(guān)鍵的更新,這些更新簡(jiǎn)化了開發(fā)過程,并提高了性能和兼容性。開發(fā)者被鼓勵(lì)仔細(xì)審查這些更改,并更新他們的項(xiàng)目以確保平穩(wěn)過渡。

React Native 0.75 的發(fā)布標(biāo)志著一個(gè)重要的里程碑,該版本通過一系列有影響力的更新和更改,旨在提高性能、穩(wěn)定性和整體開發(fā)者體驗(yàn)。以下是此版本中包含的增強(qiáng)功能、新特性和重大更改的全面概述。

亮點(diǎn) ??

Yoga 3.1 的增強(qiáng)和布局改進(jìn)

React Native 0.75 引入了 Yoga 3.1,它帶來了一些增強(qiáng)功能和新的布局能力。一個(gè)重要亮點(diǎn)是對(duì)布局屬性(如間隙和位移)的百分比值的支持。這些更新提供了更靈活和響應(yīng)式的設(shè)計(jì)選項(xiàng),僅在新架構(gòu)中可用。對(duì)于這些功能感興趣的用戶應(yīng)考慮遷移到更新的架構(gòu)。

穩(wěn)定新架構(gòu)

此次發(fā)布繼續(xù)推進(jìn)新架構(gòu)的穩(wěn)定化進(jìn)程。自 React Conf 上發(fā)布 Beta 版以來,進(jìn)行了多次錯(cuò)誤修復(fù)和改進(jìn):

  • Android 字體大小調(diào)整:修復(fù)了 adjustsFontSizeToFit 的問題。
  • 文本對(duì)齊:解決了 Android 上 textAlign 在內(nèi)聯(lián)視圖中不起作用的問題。
  • 文本基線:修復(fù)了 iOS 上的文本基線問題。

協(xié)作與新 API

  • Expo 集成:React Native Directory 現(xiàn)在提供了新架構(gòu)支持信息,簡(jiǎn)化了庫(kù)兼容性檢查。
  • TurboModules 穩(wěn)定 API:引入了用于訪問 TurboModules 中 jsi::Runtime 的新穩(wěn)定 API,提供了原生模塊與運(yùn)行時(shí)交互的安全方法。

框架與生產(chǎn)力

React Native 0.75 強(qiáng)調(diào)使用 Expo 等框架構(gòu)建應(yīng)用程序,以提高生產(chǎn)力并提供更好的開發(fā)者體驗(yàn)。

  • 模板遷移:/template 文件夾已遷移到 @react-native-community/template,以實(shí)現(xiàn)更快的更新和更好的社區(qū)維護(hù)。
  • **棄用 react-native init**:react-native init 命令將于 2024 年 12 月 31 日棄用。之后,請(qǐng)使用 npx create-expo-app 創(chuàng)建 Expo 應(yīng)用或使用 npx @react-native-community/cli init 創(chuàng)建社區(qū) CLI 項(xiàng)目。其他命令如 react-native config 將繼續(xù)正常運(yùn)行。
  • 自動(dòng)鏈接性能改進(jìn):自動(dòng)鏈接邏輯已重寫,以提高性能,并在 Android 和 iOS 上顯著提升速度。

重大更改 ??

TypeScript 中的觸摸組件

像 TouchableOpacity 和 TouchableHighlight 這樣的觸摸組件現(xiàn)在是函數(shù)組件,不能在泛型表達(dá)式中用作類型。

import { TouchableHighlight } from 'react-native';
const ref = useRef<TouchableHighlight>();

改為使用 React.ElementRef 或 View 類型。

import { TouchableHighlight } from 'react-native';
const ref1 = useRef<React.ElementRef<typeof TouchableHighlight>>();
// 或
const ref2 = useRef<View>();

停止支持舊平臺(tái)

React Native 0.75 是最后一個(gè)支持 minSdk 23(Android 6.0)和 minIOSVersion 13.4 的版本。從 React Native 0.76 開始,最低支持版本將是 Android 7.0(minSdk 24)和 iOS 15.1。更多詳細(xì)信息可以在 Android 和 iOS 的官方公告中找到。

移除 Android 上的 JSIModule

com.facebook.react.bridge.JSIModule API 最初是為了促進(jìn)原生模塊在 Android 上直接訪問 JSI,但在 0.74 版本中棄用,且使用很少,因此在 0.75 版本中徹底移除。開發(fā)者應(yīng)過渡到使用 Turbo Native Modules 來實(shí)現(xiàn)類似功能。

Android 彈出菜單的更改

為模塊化核心功能,Android 的 PopUpMenu 已被提取到一個(gè)單獨(dú)的包中。以下核心方法已被棄用:

  • UIManagerModule.showPopupMenu()
  • UIManagerModule.dismissPopupMenu()

開發(fā)者現(xiàn)在應(yīng)使用 @react-native/popup-menu-android 包中的 <PopupMenuAndroid /> 組件。

完成 iOS 上 PushNotificationIOS 的棄用

隨著 PushNotificationIOS 模塊的持續(xù)棄用,0.75 版本中移除了幾個(gè)舊的 API:

  • + (void)didReceiveLocalNotification:(UILocalNotification *)notification;
  • + (void)didReceiveRemoteNotification:(NSDictionary *)notification;

推薦使用更新的 API didReceiveNotification:(UNNotification *)notification,以更好地符合當(dāng)前的通知標(biāo)準(zhǔn)。

社區(qū) CLI 的更新

為提高性能和專注于現(xiàn)代工具,兩條命令已從社區(qū) CLI 中移除:

  • ram-bundle:隨著 Hermes 的引入,該命令已過時(shí),Hermes 是默認(rèn)的 JS 引擎。不再推薦直接加載內(nèi)存包。
  • profile-hermes:該分析工具使用了過時(shí)的 .cpuprofile 格式,與最新的 Chrome 版本不兼容?,F(xiàn)在可以通過“實(shí)驗(yàn)新調(diào)試器”中的“Profiler”面板訪問 CPU 分析功能。

這些更新反映了 React Native 致力于現(xiàn)代化開發(fā)體驗(yàn)的承諾,確保更好的性能并保持與當(dāng)前標(biāo)準(zhǔn)的兼容性。本次發(fā)布為更強(qiáng)大和高效的應(yīng)用程序開發(fā)鋪平了道路。

React Native 0.75 的其他重大更改 ??

通用

  • 代碼生成:從 C++ TurboModules 類名中刪除了 Cxx 標(biāo)記。
  • 浮點(diǎn)枚舉:由于精度錯(cuò)誤,不再支持。
  • 錯(cuò)誤處理:在向非可空參數(shù)傳遞 null 時(shí)拋出錯(cuò)誤。
  • 代碼檢查:ESLint 不再運(yùn)行 Prettier。

C++

  • ScrollViewShadowNode:在構(gòu)造函數(shù)中新增 bool includeTransform 參數(shù)。
  • RuntimeExecutor:移除了 executeAsynchronously 和 executeSynchronously_CAN_DEADLOCK。
  • 錯(cuò)誤處理:將 JsErrorHandlingFunc 重命名為 OnJsError。
  • 導(dǎo)入:從 ReactPrimitives.h 中移除未使用的導(dǎo)入。
  • 方法:LongLivedObjectCollection 和 LongLivedObject 現(xiàn)在接受一個(gè) Runtime 參數(shù)。
  • 文件重命名:utils/jsi.h 重命名為 jsi-utils.h。

TextInput

  • 回調(diào)移除:移除了已棄用的 onTextInput 回調(diào)。

Pressability

  • 方法移除:移除了 onLongPressShouldCancelPress_DEPRECATED、onResponderTerminationRequest_DEPRECATED 和 onStartShouldSetResponder_DEPRECATED。

Android

  • ReactViewBackgroundDrawable:已棄用,建議使用 CSSBackgroundDrawable。
  • ReactContext:現(xiàn)在是抽象類;使用 BridgeReactContext 和 BridgelessReactContext。
  • 布局:支持百分比彈性間隙值。
  • 運(yùn)行時(shí):從 ReactHostImpl 中移除了 ReactJsExceptionHandler。
  • 開發(fā)支持:DevSupportManagerFactory.create() 現(xiàn)在接受 PausedInDebuggerOverlayManager。
  • 測(cè)量:刪除了 UIManagerModule.measureLayoutRelativeToParent()。

iOS

  • 運(yùn)行時(shí):移除了 [RCTHost getSurfacePresenter] 和 [RCTHost getModuleRegistry]。
  • 圖像:移除了 RCTImageLoadingPerfInstrumentationEnabled。
  • 錯(cuò)誤處理:移除了通過 RCTBridge 訪問 RCTRedBox 的功能。
  • CocoaPods:將 BUILD_FROM_SOURCE 重命名為 RCT_BUILD_HERMES_FROM_SOURCE。
  • TextInput:移除了已棄用的 onTextInput 回調(diào)。

結(jié)論

React Native 0.75 引入了關(guān)鍵的更新,這些更新簡(jiǎn)化了開發(fā)過程,并提高了性能和兼容性。開發(fā)者被鼓勵(lì)仔細(xì)審查這些更改,并更新他們的項(xiàng)目以確保平穩(wěn)過渡。這一版本代表了 React Native 發(fā)展的重要一步,加強(qiáng)了該框架在提供現(xiàn)代、高效和穩(wěn)健的開發(fā)體驗(yàn)方面的承諾。

責(zé)任編輯:武曉燕 來源: 大遷世界
相關(guān)推薦

2016-08-15 13:34:37

React NativiOSjs入口

2024-10-31 08:35:53

2025-01-24 08:34:28

CSSWebAndroid

2023-06-24 17:09:06

React前端

2015-09-22 09:50:36

FacebookAndroid

2017-01-04 10:18:00

React NativScrollViewAndroid

2024-04-24 11:00:05

React 18Fiber

2016-08-12 08:49:46

React NativFacebookNative

2023-09-04 08:32:43

web開發(fā)圖像

2017-04-17 06:07:01

React Nativ開發(fā)性能

2016-10-20 14:41:38

VMware虛擬化

2024-06-04 10:21:33

React組件布局架構(gòu)

2025-01-14 08:40:00

VueReactAngular

2023-03-07 16:12:32

2024-02-28 14:06:58

2016-10-13 19:01:59

React NativUbuntu

2013-06-04 17:14:42

戴爾

2017-10-24 13:43:52

中科曙光AI

2025-04-10 00:11:01

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)