多迈知识库
第二套高阶模板 · 更大气的阅读体验

React Native 是不是框架?一文说清楚

发布时间:2026-01-06 13:00:30 阅读:33 次

很多人刚开始接触移动端开发时,听到 React Native 这个词,第一反应是:这到底是个库还是个框架?它和 React 有什么区别?能不能直接上手做项目?其实答案没那么复杂。

React Native 确实是一个框架

从软件工程的定义来看,框架是一套提供基础结构、规范开发流程,并允许你在其约束下扩展功能的工具集。React Native 完全符合这个定义。它不只是一个 UI 库,而是提供了一整套构建原生移动应用的解决方案,包括组件系统、样式处理、导航机制、原生模块桥接等。

比如你写一个简单的页面,用的是 React 的语法,但底层调用的是 iOS 和 Android 的原生控件。这意味着你写的 View 实际上变成了平台对应的 UIView 或 android.view.ViewGroup。这种“写 JavaScript,产出原生体验”的能力,正是靠 React Native 框架在背后协调完成的。

和 React 的关系就像 cousins

React 是用于构建 Web 页面的 UI 库,而 React Native 是专为移动端设计的框架。它们共享相似的编程模型——组件化、状态管理、JSX 语法,但渲染目标完全不同。React 输出到 DOM,React Native 输出到原生视图。

举个例子,你在 Web 上用 <div> 布局,在 RN 里就得用 <View>;<span> 要换成 <Text>。这些组件不是浏览器标签,是 React Native 自己定义的一套跨平台抽象。

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

function App() {
  return (
    <View style={styles.container}>
      <Text style={styles.label}>你好,世界</Text>
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
  },
  label: {
    fontSize: 16,
  },
});

上面这段代码跑在手机上,不会生成任何 HTML,而是通过 JavaScript 引擎和原生桥接,创建出真正的原生文本和容器组件。

为什么有人觉得它不是框架?

因为 React Native 把很多细节藏起来了。你只需要写 JS/JSX,不用操心线程调度、内存管理或者平台通信。这种“轻量感”让人误以为它只是一个渲染层。再加上早期版本依赖第三方导航、状态管理库,看起来像是拼凑出来的方案。

但现在不一样了。Expo 这类生态工具已经能把整个开发流程包圆,从初始化项目、调试、热更新到打包发布,一气呵成。这就是典型框架该干的事。

实际开发中怎么看待它的角色?

如果你要做一个跨平台 App,React Native 提供了完整的起点。你可以用 npx react-native init MyApp 直接生成项目骨架,里面有 iOS 和 Android 的原生工程,也有 JS 入口文件。这种开箱即用的结构,明显超出了“库”的范畴。

它也规定了你该怎么组织代码、怎么处理样式、怎么与原生交互。这些约定大于配置的设计思路,正是现代框架的核心特征。