当前位置: 首页 > news >正文

react 和 react native 的开发过程区别

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

 

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

对比项ReactReact 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-componentsJS 对象(StyleSheet.create)
单位px、rem、% 等没有单位,默认就是 dp(设备无关像素)
支持的样式基于 CSS 全面支持(动画、伪类等)样式属性有限,不支持如 hover 等特性
响应式布局媒体查询 + vw/vh 等Flex 布局 + Dimensions 响应式方案

示例对比:

// 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>

✅ 四、开发调试方式不同

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

 

✅ 五、三方库和生态不同

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

 

✅ 六、常见开发差异总结

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

 

✅ 七、打包发布差异

项目ReactReact Native
构建命令npm run build → 生成 dist 静态文件使用 Expo / Xcode / Android Studio 打包成 APK / IPA
部署平台阿里云、Vercel、GitHub Pages 等应用市场(App Store、Google Play)或企业内部发布

 

http://www.xdnf.cn/news/1229905.html

相关文章:

  • React ahooks——副作用类hooks之useThrottleEffect
  • 再见!三层框架开发
  • Java中的sort()排序详解
  • 涉水救援机器人cad【12张】三维图+设计书明说
  • linux编译基础知识-头文件标准路径
  • 轻量级鼠标右键增强工具 MousePlus
  • eSIM技术深度解析:从物理芯片到数字革命
  • Python从入门到精通——第五章 列表与元组
  • 机器学习【五】decision_making tree
  • 深入解析Java Stream Sink接口
  • JVM学习日记(十四)Day14——性能监控与调优(一)
  • 小迪23年-22~27——php简单回顾(2)
  • IMAP电子邮件归档系统Mail-Archiver
  • rabbitmq消息队列详述
  • 【Android】使用 Intent 传递对象的两种序列化方式
  • 深度学习-模型初始化与模型构造
  • 高性能MCP服务器架构设计:并发、缓存与监控
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博舆情数据可视化分析-热词情感趋势树形图
  • 【机器学习】非线性分类算法详解(下):决策树(最佳分裂特征选择的艺术)与支持向量机(最大间隔和核技巧)
  • 在 AKS 中运行 Azure DevOps 私有代理-1
  • Linux性能监控与调优全攻略
  • React ahooks——副作用类hooks之useThrottleFn
  • React ahooks——副作用类hooks之useDebounceFn
  • Shell【脚本 02】离线安装配置Zookeeper及Kafka并添加service服务和开机启动(脚本分析)
  • 堆----1.数组中的第K个最大元素
  • 通过filezilla在局域网下实现高速传输数据
  • 2025-08 安卓开发面试拷打记录(面试题)
  • 【龙泽科技】汽车故障诊断仿真教学软件【风光580】
  • Vue 详情模块 4
  • Python科研数据可视化技术