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.pswp.cn/pingmian/91658.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/91658.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/91658.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是股指期货的不对冲策略?

不对冲策略的核心思想是把股指期货当作ETF基金来用。ETF基金是一种跟踪指数的基金&#xff0c;比如沪深300ETF&#xff0c;它会按照沪深300指数的成分股比例来配置资产。而股指期货则是直接跟踪沪深300指数的期货合约。假设现在沪深300指数是4000点&#xff0c;你有120万资金。…

C++ vector底层实现与迭代器失效问题

目录 前言 一、vector 的框架 二、基础实现 1、无参的构造&#xff1a; 2、析构函数 3、size 4、capacity 5、reserve扩容 6、push_back 7、迭代器 8、 operator[ ] 9、pop_back 10、insert 以及 迭代器失效问题 11、erase 以及 迭代器失效问题 12、resize 13、 拷贝…

HTML 表单详解:构建用户交互的完整指南

在上一篇文章中&#xff0c;我们学习了HTML的基础标签和页面结构。今天我们将深入探讨HTML中最重要的交互元素——表单。表单是网页与用户交互的核心组件&#xff0c;从简单的登录页面到复杂的数据收集系统&#xff0c;都离不开表单的支持。表单基础概念表单&#xff08;Form&a…

云原生周刊:2025年的服务网格

开源项目推荐 kaito kaito 是由微软开源并托管于 GitHub 的项目&#xff0c;旨在自动化在 K8s&#xff08;主目前支持 Azure AKS&#xff09;中部署与管理大型语言模型&#xff08;如 Falcon、Phi‑3、Llama&#xff09;推理及微调工作负载。它通过定义 CRD&#xff08;Works…

国产开源大模型崛起:使用Kimi K2/Qwen2/GLM-4.5搭建编程助手

近期&#xff0c;国产大模型领域的发展令人瞩目&#xff0c;多款高性能开源模型的涌现&#xff0c;为我们开发者带来了前所未有的机遇。这些模型不仅在各大基准测试中名列前茅&#xff0c;其强大的代码能力也为我们打造个性化的编程助手提供了坚实的基础。HuggingFace的开源大模…

浅析责任链模式在视频审核场景中的应用

本文字数&#xff1a;3161字预计阅读时间&#xff1a;20分钟01设计模式设计模式的概念出自《Design Patterns - Elements of Reusable Object-Oriented Software》中文名是《设计模式 - 可复用的面向对象软件元素》&#xff0c;该书是在1994 年由 Erich Gamma、Richard Helm、R…

洛谷 P3372 【模板】线段树 1-普及+/提高

题目描述 如题&#xff0c;已知一个数列 {ai}\{a_i\}{ai​}&#xff0c;你需要进行下面两种操作&#xff1a; 将某区间每一个数加上 kkk。求出某区间每一个数的和。 输入格式 第一行包含两个整数 n,mn, mn,m&#xff0c;分别表示该数列数字的个数和操作的总个数。 第二行包含 n…

flink写paimon表的过程解析

背景 apache paimon是构建湖仓一体的重要组成部分&#xff0c;由于paimon的写入速度很快&#xff0c;通过flink进行数据写入是很自然的选择&#xff0c;本文就介绍下使用flink写入paimon的两阶段协议的大概逻辑 技术实现 flink通过两阶段协议写入paimon表&#xff0c;分成三个步…

迅为RK3568开发板OpeHarmony学习开发手册-点亮 HDMI 屏幕

OpenHarmony 源码中默认支持 HDMI 屏幕&#xff0c;但是默认的分辨率是采用 mipi 的分辨率&#xff0c;我们修改代码&#xff0c;关闭 MIPI 就可以正常显示了。在之前视频修改的基础上&#xff0c;修改/home/topeet/OH4.1/OpenHarmony-v4.1-Release/OpenHarmony/out/kernel/src…

北京理工大学医工交叉教学实践分享(1)|如何以实践破解数据挖掘教学痛点

如何有效提升医工交叉领域数据挖掘课程的教学效果&#xff1f;近日&#xff0c;北京理工大学医学技术学院辛怡副教授在和鲸组织的分享会上&#xff0c;系统介绍了其团队在《数据挖掘在生物医学中的应用》课程中的创新实践&#xff0c;为解决普遍教学痛点提供了可借鉴的“平台化…

Vue 3 入门教程 8 - 路由管理 Vue Router

一、Vue Router 简介Vue Router 是 Vue.js 官方的路由管理器&#xff0c;它与 Vue.js 核心深度集成&#xff0c;用于构建单页面应用&#xff08;SPA&#xff09;。单页面应用是指整个应用只有一个 HTML 页面&#xff0c;通过动态切换页面内容来模拟多页面跳转的效果&#xff0c…

django的数据库原生操作sql

from django.db import connection from django.db import transaction from django.db.utils import (IntegrityError,OperationalError,ProgrammingError,DataError ) from django.utils import timezoneclass Db(object):"""数据库操作工具类&#xff0c;封装…

FreeRTOS---基础知识2

1. FreeRTOS 调度机制概述FreeRTOS 是一个实时操作系统&#xff08;RTOS&#xff09;&#xff0c;其核心功能是通过 调度器&#xff08;Scheduler&#xff09; 管理多个任务的执行。调度机制决定了 何时切换任务 以及 如何选择下一个运行的任务&#xff0c;以满足实时性、优先级…

Docker安装(精简述版)

1. 安装&#xff1a;Docker 环境&#xff08;Docker desktop&#xff09; #Windows架构版本查看&#xff0c;Win R‌ 输入 ‌cmd‌ 打开命令提示符&#xff1b;输入命令‌&#xff1a; bash echo %PROCESSOR_ARCHITECTURE%#安装Docker desktop&#xff08;安装时勾选 WSL2&am…

Postman-win64-7.3.5-Setup.exe安装教程(附详细步骤+桌面快捷方式设置)​

Postman 是一款超常用的接口调试工具&#xff0c;程序员和测试人员用它来发送网络请求、测试API接口、调试数据交互​ 1. 双击安装包​ 安装包下载地址&#xff1a;https://pan.quark.cn/s/4b2960d60ae9&#xff0c;找到你下的 Postman-win64-7.3.5-Setup.exe 文件&#xff08…

149. Java Lambda 表达式 - Lambda 表达式的序列化

文章目录149. Java Lambda 表达式 - Lambda 表达式的序列化为什么要序列化 Lambda 表达式&#xff1f;Lambda 表达式的序列化规则示例代码&#xff1a;序列化 Lambda 表达式代码解析&#xff1a;Lambda 序列化的限制总结&#xff1a;149. Java Lambda 表达式 - Lambda 表达式的…

颐顿机电携手观远BI数据:以数据驱动决策,领跑先进制造智能化升级

颐顿机电签约观远数据&#xff0c;聚焦财务分析、销售管理等场景&#xff0c;以 BI 数据解决方案推进数据驱动决策&#xff0c;助力先进制造企业提效与竞争力升级。一、合作官宣&#xff1a;颐顿机电 观远数据&#xff0c;开启数据应用新征程浙江颐顿机电有限公司&#xff08;…

【PHP】几种免费的通过IP获取IP所在地理位置的接口(部分免费部分收费)

目录 一、获取客户端IP地址 二、获取IP所在地理位置接口 1、IP域名归属地查询 2、腾讯地图 - IP定位 3、聚合数据 - IP地址&#xff08;推荐&#xff09; 4、高德地图 - IP定位&#xff08;推荐&#xff09; 5、360分享计划 - IP查询 6、天聚ip地址查询 7、百度IP地址…

【Excel】制作双重饼图

一、效果话不多说&#xff0c;直接上数据和效果图&#xff01;&#xff08;示例软件&#xff1a;WPS Office&#xff09;类别现金刷卡小计苹果10.005.0015.00荔枝20.0015.0035.00西瓜30.0025.0055.00总计60.0045.00105.00二、步骤&#xff08;一&#xff09;制作底图插入饼图&a…

gcc-arm-none-eabi安装后,找不到libgcc.a的拉置

位置在&#xff1a;/usr/lib/gcc/arm-none-eabi/6.3.1/libgcc.a查找方法&#xff1a;arm-none-eabi-gcc --print-libgcc-file-name以前没找到&#xff0c;是因为进错目录&#xff1a;/usr/lib/arm-none-eabi/lib