React Native:用 React 写移动端

React Native 是 Meta 开源的跨平台移动应用框架,基于 React 构建原生 iOS 和 Android 应用。GitHub 上 Star 数超过 12 万,是移动开发领域关注度较高的开源项目之一。

正文顶部截图

React Native 的核心理念是 “Learn once, write anywhere”,学一次 React 就能在多个平台编写应用。它使用平台原生 UI 组件来渲染界面,应用在 iOS 和 Android 上的表现和原生应用一致,手势、动画、导航等交互都符合各自平台的用户习惯。

README区域截图

主要特性

  • 声明式 UI: 用声明式方式编写界面,状态变化时视图自动更新
  • 组件化开发: 封装独立的 UI 组件,各自管理状态,组合起来构建完整界面
  • 即时刷新: 修改 JavaScript 代码后秒级生效,不需要重新编译原生工程
  • 跨平台复用: 一套代码在 iOS 和 Android 上运行,还可以扩展到 Windows、macOS 等平台

React Native 支持 iOS 15.1 和 Android 7.0(API 24)及更高版本。开发环境支持 Windows、macOS 和 Linux,但构建和运行 iOS 应用限于 macOS,需要 Xcode。

新架构

React Native 的架构经历过几次迭代。早期通过 Bridge 在 JavaScript 线程和原生线程之间传递 JSON 数据,动画和手势响应存在延迟。

从 2018 年起,团队逐步引入新的技术方案:

  • Fabric: 新渲染系统,支持同步调用和并发渲染
  • TurboModules: 按需加载的原生模块,替代旧的 Bridge 方式
  • JSI: JavaScript 和原生代码之间的直接通信层,省掉序列化环节

新架构降低了通信延迟,列表快速滚动和手势动画的流畅度有了提升。

快速上手

最直接的方式是用 Expo,不需要安装 Xcode 或 Android Studio,浏览器里就能开始:

npx create-expo-app MyExpoApp
cd MyExpoApp
npx expo start

Expo 封装了大量原生能力,适合快速原型和中小型项目。如果需要完整的原生控制,可以初始化标准项目:

npx react-native init MyProject
cd MyProject
npx react-native run-ios

组件写法和 React 一致:

import React from 'react';
import { View, Text, StyleSheet } from 'react-native';

const App = () => (
  <View style={styles.container}>
    <Text style={styles.title}>Hello React Native</Text>
  </View>
);

const styles = StyleSheet.create({
  container: { flex: 1, justifyContent: 'center', alignItems: 'center' },
  title: { fontSize: 24, fontWeight: 'bold' },
});

export default App;

生态

React Native 的社区生态比较成熟。导航用 React Navigation,状态管理可以用 Zustand 或 Jotai,网络请求有 React Query。社区维护了相机、地图、支付等常见场景的原生桥接库。调试分析可以使用 Flipper,版本升级参考官方的升级指南。

React Native 由 Meta 持续维护,核心团队和社区贡献者保持每月稳定版本的更新节奏。对有 React 前端经验的开发者来说,转向移动端的学习成本较低,一套技术栈覆盖 Web、iOS、Android 三个端。

持每月稳定版本的更新节奏。对有 React 前端经验的开发者来说,转向移动端的学习成本较低,一套技术栈覆盖 Web、iOS、Android 三个端。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐