react 和 react native 的开发过程区别

React 和 React Native 虽然都使用 React 思想和语法(函数组件、Hooks、JSX 等),但在 开发流程、渲染机制、UI 组件、样式处理、运行平台 等方面有明显差异。以下是对比总结:

✅ 一、开发目的和平台不同

对比项 React React Native
应用类型 Web 应用(浏览器) 移动 App(iOS / Android)
渲染目标 HTML + CSS 原生组件(View、Text 等)
运行环境 浏览器 手机系统(通过 JS Bridge)

✅ 二、UI 组件不同

React 使用的是 DOM 元素,React Native 使用的是原生组件:

功能 React (Web) React Native (App)
容器 <div> <View>
文本 <p> / <span> <Text>
图片 <img src="" /> <Image source={...} />
输入框 <input /> / <textarea /> <TextInput />
按钮 <button> <TouchableOpacity> / <Pressable>
表单校验 AntD、Form 表单等 Formik、react-hook-form 等(配合使用)

✅ 三、样式写法不同

项目 React(Web) React Native(App)
样式语言 CSS / SASS / styled-components JS 对象(StyleSheet.create)
单位 px、rem、% 等 没有单位,默认就是 dp(设备无关像素)
支持的样式 基于 CSS 全面支持(动画、伪类等) 样式属性有限,不支持如 hover 等特性
响应式布局 媒体查询 + vw/vh 等 Flex 布局 + Dimensions 响应式方案

示例对比:

javascript 复制代码
// React Web
<div className="box">Hello</div>
<style>
  .box { color: red; padding: 10px; }
</style>

// React Native
<View style={{ color: 'red', padding: 10 }}>
  <Text>Hello</Text>
</View>

✅ 四、开发调试方式不同

对比项 React React Native
启动方式 npm start → 浏览器访问 使用 Expo 或 RN CLI → 手机/模拟器运行
预览方式 浏览器 iOS / Android 真机 or 模拟器
调试方式 浏览器 DevTools Chrome DevTools / React Native Debugger / Flipper
热更新 HMR(浏览器自动刷新) Fast Refresh(设备自动刷新)

✅ 五、三方库和生态不同

内容 React React Native
UI 库 AntD / MUI / TailwindCSS 等 React Native Elements / NativeBase 等
路由 React Router React Navigation
状态管理 Redux / MobX / Zustand 等 同上,但注意需适配原生组件
网络请求 Axios / Fetch Axios / Fetch / plus 网络状态监听库
动画库 Framer Motion / GSAP Reanimated / react-native-animatable

✅ 六、常见开发差异总结

开发项 React React Native
页面跳转 React Router React Navigation
表单处理 AntD Form / react-hook-form Formik / react-hook-form(自适配 RN)
文件上传 <input type="file" /> 需使用原生模块(ImagePicker、DocumentPicker)
通知权限 浏览器原生通知 原生模块(如 react-native-push-notification
调用摄像头等硬件 基本不涉及 需使用原生模块(如 expo-camerareact-native-camera

✅ 七、打包发布差异

项目 React React Native
构建命令 npm run build → 生成 dist 静态文件 使用 Expo / Xcode / Android Studio 打包成 APK / IPA
部署平台 阿里云、Vercel、GitHub Pages 等 应用市场(App Store、Google Play)或企业内部发布
相关推荐
kyriewen20 小时前
我手写了一个 EventEmitter,面试官追问了 6 个问题——第 4 个我没答上来
前端·javascript·面试
山河木马21 小时前
矩阵专题2-怎么创建视图矩阵(uViewMatrix)
javascript·webgl·计算机图形学
小林攻城狮21 小时前
使用 Transport 节流解决 Vercel AI SDK 流式渲染卡死问题
前端·react.js
前端缘梦21 小时前
告别 TS 运行时类型漏洞!Zod 完整入门实战教程(前端 / 全栈必备)
前端·react.js·全栈
tangdou3690986551 天前
AI真好玩系列-2分钟快速了解DeepAgents | Quick Guide to DeepAgents in 2 Minutes
前端·javascript·后端
张元清1 天前
React useIntersectionObserver Hook:懒加载与可见性检测(2026)
javascript·react.js
彭于晏爱编程1 天前
纯 JS + Node,一个下午手搓了能读懂公司代码的 AI 助手,老板以为我转行了
前端·javascript
妙码生花1 天前
从 PHP 到 AI + Golang,程序员自救转型手记(十四):眨眼小人登录页制作
前端·javascript·ai编程
妙码生花1 天前
从 PHP 到 AI + Golang,程序员自救转型手记(十三):前端路由初始化
前端·javascript·ai编程
PBitW1 天前
GPT训练我的第四天,被打惨了!!!😭😭😭
前端·javascript·面试