React Native 0.77 发布:更强的样式支持与性能优化

news/2025/1/31 16:19:43 标签: react native, react.js, javascript, ecmascript

React Native 0.77 正式发布!此次版本带来了多项重要改进,包括样式功能的增强、Android 平台的性能优化以及项目模板的升级。这一版本的核心目标是提升开发效率,同时确保在不同平台上的兼容性。接下来,我们来看看这次更新中的亮点内容。


主要更新内容 ✨

  1. 全新 CSS 特性支持:新增对 display: contentsboxSizingmixBlendModeoutline 等属性的支持。

  2. Android 性能提升:支持 Android 15 强制的全屏边到边显示,以及未来设备上的 16KB 内存页面优化。

  3. CLI 与模板更新:废弃了 react-native init,推荐使用更现代的项目初始化工具。

  4. iOS 项目默认使用 Swift:新创建的 iOS 项目现在默认采用 Swift 编写,提高性能与兼容性。

  5. 关键改动与废弃功能:包括 Metro 中 console.log 流日志功能的移除及原生动画行为的调整。


1. 全新 CSS 特性支持

1.1 display: contents

该属性允许元素从视觉上移除自身的布局影响,但保留其子元素。这非常适合用来创建不会干扰布局的包装组件。

示例

function Alerting({ children }) {
  return (
    <View
      style={{ display: 'contents' }}
      onPointerDown={() => alert('Hello World!')}>
      {children}
    </View>
  );
}

在这个例子中,Alerting 组件包裹了子元素,但不会引入额外的布局盒,适合用于更灵活的布局设计。

1.2 boxSizing

React Native 现在支持 content-boxborder-box 两种盒模型,与 Web 标准保持一致。但为了兼容性,默认仍使用 border-box

示例

<View style={{ 
  width: 100, 
  padding: 20, 
  borderWidth: 10, 
  boxSizing: 'content-box' 
}} />

这个属性使得在处理边距和边框时更具控制力。

1.3 mixBlendMode

新增的 mixBlendMode 属性允许实现复杂的颜色混合效果,使前景和背景颜色动态融合。这为设计独特的界面提供了更多可能性。

示例

<View style={{ 
  backgroundColor: 'red', 
  mixBlendMode: 'multiply' 
}} />

支持的混合模式包括 multiplyscreenoverlay 等,开发者可以轻松创建丰富的视觉效果。

1.4 Outline 属性

React Native 0.77 引入了 outlineWidthoutlineStyleoutlineColor 等属性,它们类似于边框属性,但不会影响布局,适用于创建元素的高亮状态。

示例

<View style={{ 
  outlineWidth: 2, 
  outlineColor: 'blue', 
  outlineStyle: 'dashed' 
}} />

这为焦点状态的样式设计提供了新的选择。


2. Android 平台优化

2.1 支持 Android 15 全屏显示

新版支持 Android 15 强制边到边显示的要求,确保在 API 35 及以上的设备上应用布局无缝适配。如果你使用了 react-native-safe-area-context,应用将自动处理这些调整,否则需要手动更新布局以适配。

2.2 16KB 页面支持

React Native 0.77 针对未来的 Android 设备进行了 16KB 内存页面的适配工作。这一优化不仅提高了兼容性,也为性能提升奠定了基础。


3. CLI 和模板更新

废弃 react-native init

react-native init 已被废弃,建议改用以下现代化工具:

  • 使用 Expo 初始化项目:npx create-expo-app

  • 使用社区 CLI:npx @react-native-community/cli init

这种调整简化了项目创建过程,也更符合当前开发工具的趋势。


4. iOS 项目默认使用 Swift

新创建的 iOS 项目现在默认采用 Swift 语言,而非 Objective-C。以下是更新后的 AppDelegate 示例:

import UIKit
import React

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?
    var dependencyProvider = RCTAppDependencyProvider()

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        return true
    }
}

这项更新减少了代码模板中的冗余,同时提升了性能,并为 Swift 框架的集成带来了更多便利。


5. 关键改动与废弃功能

  • 移除 Metro 中的 console.log 流日志功能:开发者需要改用 Chrome DevTools Protocol(CDP)或第三方工具(如 Expo Tools)。

  • 更稳定的滚动视图头部粘性布局

  • 改进绝对定位的布局一致性

  • 支持 TurboModules,提高原生模块性能


总结

React Native 0.77 为开发者提供了更强大的工具和更高效的性能支持。从 CSS 新特性到 Android 的兼容优化,这些改进让跨平台开发更接近 Web 标准,同时为未来设备的适配提供保障。在升级时,需留意破坏性改动,尤其是日志处理方式的变化和 iOS 模板的更新。

赶快升级到 React Native 0.77,体验这些新特性吧!

最后:

React Hook 深入浅出

CSS技巧与案例详解

vue2与vue3技巧合集

VueUse源码解读


http://www.niftyadmin.cn/n/5838750.html

相关文章

DooTask | 案例分析:直击客户痛点的 DooTask

DooTask | 案例分析&#xff1a;直击客户痛点的 DooTask 前言案例一一、客户面临的痛点二、DooTask 的解决方案 案例二一、客户面临的痛点二、DooTask 的解决方案 案例三一、客户面临的痛点二、DooTask 的解决方案 案例四一、客户面临的痛点二、DooTask 的解决方案 案例五一、客…

MySQL 索引存储结构

索引是优化数据库查询最重要的方式之一&#xff0c;它是在 MySQL 的存储引擎层中实现的&#xff0c;所以 每一种存储引擎对应的索引不一定相同。我们可以通过下面这张表格&#xff0c;看看不同的存储引擎 分别支持哪种索引类型&#xff1a; BTree 索引和 Hash 索引是我们比较…

PyTorch 快速入门

我们将通过一个简单的示例&#xff0c;快速了解如何使用 PyTorch 进行机器学习任务。PyTorch 是一个开源的机器学习库&#xff0c;它提供了丰富的工具和库&#xff0c;帮助我们轻松地构建、训练和测试神经网络模型。以下是本教程的主要内容&#xff1a; 一、数据处理 PyTorch…

NLP深度学习 DAY5:Seq2Seq 模型详解

Seq2Seq&#xff08;Sequence-to-Sequence&#xff09;模型是一种用于处理输入和输出均为序列任务的深度学习模型。它最初被设计用于机器翻译&#xff0c;但后来广泛应用于其他任务&#xff0c;如文本摘要、对话系统、语音识别、问答系统等。 核心思想 Seq2Seq 模型的目标是将…

12.udp

12.udp **1. UDP特性****2. UDP编程框架&#xff08;C/S模式&#xff09;****3. UDP发送接收函数****4. UDP编程练习** 1. UDP特性 连接特性&#xff1a;无链接&#xff0c;通信前无需像TCP那样建立连接。可靠性&#xff1a;不可靠&#xff0c;不保证数据按序到达、不保证数据…

PDF 擦除工具

该软件仅仅适用于非人民币玩家&#xff0c;如果有wps会员等类似的软件的没有大用处 PDF Eraser允许用户擦除PDF文件中任何元素&#xff0c;并且支持添加文本和图像。除此之外PDF Eraser允许用户删除不必要的PDF页面&#xff0c;为了兼顾一些大型的扫描的PDF文档&#xff0c;PDF…

MySQL(高级特性篇) 13 章——事务基础知识

一、数据库事务概述 事务是数据库区别于文件系统的重要特性之一 &#xff08;1&#xff09;存储引擎支持情况 SHOW ENGINES命令来查看当前MySQL支持的存储引擎都有哪些&#xff0c;以及这些存储引擎是否支持事务能看出在MySQL中&#xff0c;只有InnoDB是支持事务的 &#x…

Ollama 运行从 ModelScope 下载的 GGUF 格式的模型

本文系统环境 Windows 10 Ollama 0.5.7 Ollama 是什么&#xff1f; Ollama 可以让你快速集成和部署本地 AI 模型。它支持各种不同的 AI 模型&#xff0c;并允许用户通过简单的 API 进行调用 Ollama 的安装 Ollama 官网 有其下载及安装方法&#xff0c;非常简便 但如果希…