ReactNative: 结合工程的思考

react native手势流程介绍(基于最新的 react native版本) 手势事件处理流程,其识别在native端只找到对应需要响应的view和提供手势事件的类型坐标以及用于多指识别的一些信息,而真正的识别过程都是在JavaScript端根据需求使用实现: 一.native端手势事件处理分发: 1.在创建ReactRootView的时候,内部会创建一个对应JSTouchDispatcher实例,JSTouchDispatcher是事件分发的管理类,用来把事件处理传递给JS的方法处理,也就是当UI界面产生事件,就会执行JS的代码处理(@Nullable为可以传入NULL)。 pri 阅读详情
闲言碎语

自从 FB 开源了 ReactNative, 受到大家的追捧.
仿佛看到了跨平台的真正曙光.


说句实在话, 学习 ReactNative 的成本还是比较大的.
什么 Node.js, JavaScript, ES6,还有一堆的管理和使用工具.
至少你还得懂至少一门平台知识, 否则无法展示你牛逼的才华.

如果你想在移动 App 领域长期发展, 那需要学习的东西就更多了.


不管怎么样, 饭, 还是要一口一口的吃! 路, 还是要一步一步走.

今天跟大家分享一下, 如何结合自己的项目来集成 ReactNative 这个框架.


使用 RN, 可能有下面几种情况:

1.项目刚立项, 尚未开始搭建框架.
2.项目已经开始, 但是只有一个平台 iOS 或者 Android 在开发, 另一个平台处于待命状态.
3.项目已经上线, 迭代了好几个版本了,iOS 和 Android 都有上线.

上面的几种情况是实际工作中很常见的模式.

那么, 引入ReactNative有几种方式呢, 我结合自己的项目经验, 罗列了如下几种:

1.直接型.
2.cocoapods | gradle
3.混合型(copy + 1 | 2)

直接型

react-native init直接创建工程.

搭建好环境后, 使用react-native init命令来直接创建工程.
具体可以参考 文档.

这种方式简单直接.
这种方式,也是写第一个 RN 程序的入门操作.

cocoapods | gradle

使用 cocoapods 来管理 iOS 开发的库.
使用 gradle 来管理 Android 开发的库.

使用这种方式的好处是使用工具来管理和配置 RN, 方便且不易出错.
不好的地方是不能及时的使用 RN 的最新版本.

这里以 iOS 工程为例子, 大概的操作步骤如下:

1.cd 到已有的项目下面
2.写 package.json
3.执行 npm install. 下载和安装node_modules.
4.pod init创建 Podfile
5.在 Podfile 中写入相关的 RN 库.
6.执行 pod install. 安装 RN 库.
7.touch index.ios.js创建入口文件.写入相关代码.

具体的操作可以参考 这里, 异常的清晰明了.

关于 Android 上面的 gradle 操作可以参考 这里.

混合型(copy + 1 | 2)

结合直接型和 cocoapods|gradle 的模式, 对已有工程进行 RN 的植入.

copy + 1

使用直接型创建和现有工程同名的项目. 将原来的平台代码分别 copy 到新项目的 ios 和 android 目录.

这种模式, 比较适合已有上线或者开发即将上线的项目(已有 Android 和 iOS 两个平台).

当然, 如果你愿意也可以改造为 cocoapods 或者 gradle 管理的模式.

copy + 2

使用 cocoapods 或者 gradle 分别引入 RN 框架. 将原来的平台代码分别 copy 到新项目的 ios 和 android
目录. 进行简单的平台的文件配置和梳理即可.

这种模式, 比较适合已有上线或者开发即将上线的项目(已有 Android 或者 iOS 某个平台).


针对这几种模型, 可以为你的项目引进 ReactNative 了.

撸吧, 猿们!

[译] Java、Kotlin、RN、Flutter 开发出来的 App 大小,你了解过吗?(1) 现在开发 App 的方式非常多,原生、ReactNative、Flutter 都是不错的选择。那你有没有关注过,使用不同的方式,编译生成的 Apk ,大小是否会有什么影响呢?本文就以一个最简单的 Hello World App,来看看不同的框架,编译出来的 Apk 大小,有什么区别。当然,本文的环境下是一个最简单的 Apk,其实只能部分说明问题,你觉得呢?— 承香墨影。 阅读详情

相关推荐

DrissionPage无头模式破盾记:实战绕过CloudFlare 5秒验证

本文详细介绍了如何使用DrissionPage无头模式绕过CloudFlare 5秒盾验证,提升爬虫效率。通过关键参数配置、服务器环境问题处理及高级绕过技巧,如动态UA轮换和鼠标移动模拟,帮助开发者有效应对反爬机制。实战案例展示了如何结合最新Chrome UA和参数设置实现稳定数据采集。

weixin_29327525的博客 491

关于ReactNative Reactions: Got DOWN touch before receiving or CANCEL UP from last gesture

关于ReactNative Reactions: Got DOWN touch before receiving or CANCEL UP from last gesture 之前写ReactNative 在List列表有一个编辑操作 编辑后弹出加载对话框 进行网络请求 请求结束关闭对话框 一个再简单不过的操作。可是当执行完成整个界面都卡住了 无法点击 这就郁闷了 百度也没有答案

Fashaoye的专栏 2400

HDLbits练习11 - Counter 1-12 ( Exam/ece241 2014 q7a )

(如这题用于当复位信号为高或者计数器递增至12时,该信号置1使计数器的输入信号 ’ d ’ 变为 ’ 4’b0001 ’ ,再加载到 ’ Q ’ 中。当 ’ load ’ 信号为高时,在时钟的上升沿,计数器会将 ’ d ’ 输入的值加载到 ’ Q ’ (计数器的输出)中,而不是递增当前值。用途:在时钟上升沿触发的情况下,如果 ’ enable ’ 信号为高,计数器的值会递增,如果 ’ load ’ 信号为高,计数器将加载 ’ d ’ 信号的值。作用: ’ Q ’ 是计数器的当前值,也是模块的主要输出。

weixin_62830176的博客 474

ReactNative: 记录几个常用

距离这篇博客 ReactNative: react-native init 到底做了什么, 已好久没有更新关于 RN 的东西了.前两天有私信问我, 关于如何搭建 RN 开发环境? 进入开发界以来, 我们总是在不断地学习不断地向前发展. 学习新的东西, 总是需要搭建各种各样的开发环境. 搭建环境是锻炼和磨练一个人的开始, 所以,你要有耐心, 要坚持. 遇到困难, 看官方文档, 找 goo

CodingMan 1705

Node-Red系列教程——NodeRed通过OPC UA读取数据并写入mysql

NodeRed通opcua读取西门子数据并存入mysql

鲸鱼姐的专栏 1万+

别再死记硬背公式了!用Multisim仿真软件,5分钟搞懂三极管放大电路的工作原理

本文介绍如何利用Multisim仿真软件快速掌握三极管放大电路的工作原理,避免死记硬背公式。通过动态实验和参数调整,直观理解三极管的工作状态和放大效果,提升学习效率和实践能力。

weixin_30566063的博客 568

ReactNative源码分析之UI事件分发

ReactNative用的版本: 0.61.5 原生层事件的触发入口主要有两个类: 1. ReactRootView 2. 自定义的ViewManager对应的viewGroup 今天我们主要梳理ReactRootView事件传递 一、ReactRootView JavaScript中加载的View最终会依附在ReactRootView上,而该类正是 Activity创建后,加载的Cont...

ki4yous的博客 1328

DSP复习笔记(5)——外部接口模块XINTF

【注意】 1. 芯片型号:TMS320F28335 2. 适用于NJUSTEO李彧晟老师课程 3. 参考资料:《TMS320F28335 DSP原理、开发及应用》 4. 对应PPT第二章 5. 本章内容较多而且较为重要,请结合PPT一起复习

BerenCamlost的博客 1万+

React-Native系列Android源码分析

借鉴的文章: React-Native系列Android——Touch事件原理及状态效果 小白使用了一段时间的react-native,它的UI设计方式真是酷炫,原来我是学android的,由于有android的开发基础,所以我打算从java上学习react-native在原生代码上的设计,并且写下系列的文章笔记作为以后的知识回顾。

水滴穿石 3189

YOLO26涨点改进 | 检测头改进篇 | 利用ASFF改进YOLO26检测头,自适应空间特征融合模块,在所有的目标检测上均有大幅度的涨点效果

本文提出了一种自适应空间特征融合(ASFF)检测头YOLO26,用于解决目标检测中特征金字塔跨尺度特征不一致的问题。ASFF通过学习空间权重图,自适应地融合不同尺度的特征,抑制特征层间的冲突信息。实验表明,该方法在MSCOCO数据集上显著提升了检测精度(45FPS下AP达42.4%),且仅引入极小推理开销。ASFF模块具有可微分性、模型无关性和计算成本低等优势,能够有效改善特征尺度不变性,实现速度与精度的良好平衡。文章详细介绍了ASFF的原理、实现代码及其在YOLO模型中的集成方法。

Ai缝合怪、助力小伙伴高效发论文 556

uni-app - 实现全屏自适应且不变形背景大图,设置一张图片占满全屏(根据手机或电脑尺寸自动拉伸背景图像),用于页面是一张平铺的大图做背景的情况,全端兼容

uni-app,vue.js,微信小程序-设置背景图自适应手机屏幕尺寸,页面中的背景图片高度和宽度自适应,UNI-APP里如何设置背景图自适应手机屏幕尺寸,如何实现一个图片铺满整个页面,并且可以根据用户机型进行自动修正,自适应背景大图片官方教程,一个页面如何将图像放到背景上,纯CSS实现,设置背景图片占满全屏,3种CSS实现背景图片全屏铺满自适应的方式,uni-app中如何让图片不带高度的自适应,兼容uni-app全端,支持【纯】微信小程序项目使用,uni-app-实现全屏自适应且不变形背景大图

🏆 前端领域优质创作者 1万+

ReactNative项目构建分析与思考之RN组件化

结合RN项目的构建分析,给出一种RN组件化的项目搭建方式。

喻志强的博客 2043

斯坦福大学3D点云模型下载

本文整理了斯坦福大学10个经典的点云(pcd)及其模型(ply),方便日后使用,欢迎免费下载!

孙悟空 7738

RN是什么

React Native(反应 本地) 简称RN,是Facebook在2015年的F8大会上宣布的。刚开始仅支持ios,现在,主流的iOS和Android支持度已经很好了。主要是提供了一种多平台同时运行的语言环境。RN的口号是:Learn Once,Write AnyWhere。学起来炒鸡简单。但是各个平台的适配等工作,就得慢慢自己折腾!这个也和移动端设备的多样有关,不同设备从硬件到软件的环境都可能不同。比如Android有返回等物理按键,但是iPhone就没有这样的按钮。等等类似的这种情况都使得我们不得不

老高的专栏 1万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

weex、RN还是Flutter?

weex、RN还是Flutter?聊聊阿里跨平台开发框架选型思路 APP混合式开发、跨平台、跨终端开发流行的当下,如何选择一种适合自己的跨端开发技术呢? 多平台的开发增加的额外成本到底是多少? 在整个研发生命周期中的占比是多少? 跨平台的开发框架能多大程度上解决这个问题? 这个问题回答清楚了,我们才能明确适合自己的跨平台开发框架应该具备哪些特征,这个跨平台框架在一个 App 应用中的使用范围是多...

windrainpy的博客 1724

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

干货 | 携程APP Native/RN内嵌Flutter UI混合开发实践和探索

作者简介Deway,携程资深工程师,iOS客户端开发,热衷于大前端和动态化技术;Frank,携程高级工程师,关注移动端热门技术,安卓客户端开发。前言随着各种多端技术的蓬勃发展,如今的移动...

携程技术 3298

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

进击ReactNative-疾如风

情境(Situation) 约法三章 三问 三看 向后看 向外看 向前看 三思 思危 思退 思变 三愿 冲突(Complication) 疑问(Question) 5W2H分析法 答案(Answer) 三原则 有理 有利 有节 庖丁解牛 磨刀霍霍 一刀两断 吞刀吐火 Ja...

915

Flutter / RN / iOS 的状态策略,该如何取舍?

本文探讨了Flutter、RN和iOS三大平台状态管理的差异策略。作者指出,不同平台的UI更新模型和状态消费方式决定了状态管理不能采用统一方案,而应顺应平台特性:iOS应保持状态局部化,RN需控制全局状态扩散速度,Flutter则要克制过早提升状态层级。核心原则是"状态离UI越近越不要共享,离业务越近越要稳定"。成熟的状态策略不在于

qq_36863796的博客 16万+

ReactNative进阶(四十):应用 ListView 实现分组列表_rn faltlist 分组列表

中年危机是真实存在的,即便有技术傍身,还是难免对自己的生存能力产生质疑和焦虑,这些年职业发展,一直在寻求消除焦虑的依靠。技术要深入到什么程度?做久了技术总要转型管理?我能做什么,我想做什么?一技之长,就是深耕你的专业技能,你的专业技术。(重点)独立做事,当你的一技之长达到一定深度的时候,需要开始思考如何独立做事。(创业)拥有事业,选择一份使命,带领团队实现它。(创业)一技之长分五个层次栈内技术 - 是指你的前端专业领域技术栈外技术 - 是指栈内技术的上下游,领域外的相关专业知识。

2401_84616292的博客 1088

打造ReactNative脚手架工程 - 目录结构

前言 上节我们简单的对工程初始化作了些补充,这节我们来思考下工程文件的划分以及命名。可能我们平常开发中不会太多注重这些,但是对于有代码洁癖的我来说这是不能容忍的,我们现在来简单讨论下。 什么是文件夹? 文件夹以什么命令合适? 文件夹多少层合适? 什么是文件夹 文件夹,这个问题可能问得有点傻?可能大多数人回答的是,将许多不同的文件放在一起就形成了文件夹。其实这说法是错误的,关键就在于说是不...

Ctrl_S的博客 1241

Flutter 适合什么团队?RN / iOS 各自的边界在哪?

本文探讨了Flutter、React Native和iOS原生开发的选型问题,指出技术决策应基于团队能力、业务阶段和长期成本。Flutter适合早期快速验证业务,RN便于前端团队快速迭代,而iOS原生则提供长期稳定性。文章强调,技术选型没有绝对最优,关键在于匹配当前发展阶段,并提出了管理层的三个判断标准:业务试错阶段、核心体验重要性和团队架构能力。最终指出,好的技术决策是克制的结果,应着眼于三到五年的总成本而非短期效率。

qq_36863796的博客 1592

Flutter / RN / iOS,在状态重构容忍度上的本质差异

本文对比了iOS、RN和Flutter三种技术栈在状态管理重构时的差异。iOS因对象边界明确,重构影响范围较小;RN因全局状态依赖导致重构成本高;Flutter由于UI与状态深度绑定,重构相当于重组Widget树。文章指出,Flutter项目最有效的策略是早期严格控制状态范围,避免后期大规模重构。三种技术栈中,Flutter对状态设计的前期要求最高,需要开发者更谨慎地规划状态结构。

qq_36863796的博客 1437

在鸿蒙系统中动态卸载RN的jsbundle及实例销毁的探索

作为一名热衷于移动应用开发的工程师,我近期在参与一个基于鸿蒙系统的应用开发项目时,遇到了一个关于React Native(RN)的技术难题:如何在鸿蒙系统中动态卸载已加载的jsbundle,并销毁相应的RN实例。在某些场景下,如应用切换、内存紧张或用户行为触发时,需要动态卸载不再使用的jsbundle,并销毁对应的RN实例,以释放资源和内存。:基于现有的限制,我设计了一个原型方案,通过监听应用的生命周期事件和内存使用情况,来决定何时卸载jsbundle。:优化卸载时机,避免在应用高负载时进行卸载操作。

qq_14863717的博客 731

HART温度传感器转Modbus TCP网关:光伏车间温度监控数字化改造案例

在工业现场,温度传感器是工艺监控的基础,而HART协议作为一种在4-20mA模拟信号上叠加数字通信的仪表协议,兼顾了模拟可靠性与设备诊断能力。协议转换网关的出现,让存量HART温度变送器无需更换即可接入Modbus TCP以太网络,由上位机统一采集与展示。这种方案既保留原有仪表精度,又释放HART数字信号中的状态信息,适用于光伏车间层压机、扩散炉、PECVD等核心设备的温度监控。结合HART转TCP网关实现寄存器映射与轮询,可快速构建低成本、可扩展的车间数字化监控链路,为产线良率与预防性维护提供实时数据支撑

weixin_34417183的博客 528
上一篇: ReactNative: 记录几个常用
下一篇: ReactNative: 不一样的 HelloWorld
veryitman
博客等级 码龄16年 472粉丝 310原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值