React-native项目开发心得

React Native移动电商应用:实战案例(从零实现) 通过实际案例深入掌握React Native开发技巧,手把手实现一个完整的移动电商应用,涵盖界面布局、状态管理与API交互等核心环节,助力开发者快速上手React Native。 阅读详情

React-Native的好丑就不多说了,有人说很好,有人说很多坑,自己去体会,不过向京东,微软,阿里等大公司都是在用RN的,至少目前Flutter不够成熟之前在我看来RN是比较不错的,

我就只说这一点相信有理由去学习RN了  RN可以实现三端互通,IOS,android,web,具体可以参考 JDReact SDK。互通的好处就不用多说了吧,三端的人开发一套代码,如果原来一个项目组的人员配备是android3个,ios3个,web2个,那有RN后相当于8个人一起开发维护一套代码,轻松加愉快!

 

那么重点来了,怎么快速开发RN项目

其实官网文档说的很清楚了,不过我这里总结一下自己的一些体验。

不论是在已有项目基础上开发RN项目还是全新开发一个RN项目,这个命令都是要用到的,在写这篇文章的时候RN0.56版本在window10系统和android上支持不太友好,建议用0.56之前的版本

react-native init MyApp --version 0.55.4

初始化一个项目之后就可以直接run了,那怎样算是run成功,自己看文档或者别的博客吧,这里说说怎么提升gradle版本和sdk支持,因为RN创建出来的项目gradle是2.2.3,compile sdk是23的,但是现在很多的开源框架或者第三方SDK都不适配这么低的版本

那怎么改到更高版本,并且编译不出错?如下图所示

其实改起来很简单,就直接在androidstudio里面找到对应的gradle文件修改就行,但是编译运行之后MainApplication和MainActivity继承的react native类会报红,虽然不影响运行,但是挺难看的,解决办法是打开RN项目下的android目录,删除.gradle和.idea缓存文件,再重新编译,那么一般不会报红了

然后说说RN项目集成第三方SDK,如果想友盟这些有react native集成文档的最好不过,直接按照文档集成就行,如果没有文档的,那按照android或者ios的集成文档去集成,然后代码中只需要增加两个类,RN和原生通信的办法就是写一个交互类,并且继承ReactContextBaseJavaModule,其中getName返回的字符串是给RN调用的原生类名称,用@ReactMethod注解的方法是给RN调用的原生方法。且看代码(例子是集成智齿智能客服平台SDK)

public class CustomerService extends ReactContextBaseJavaModule {

    public CustomerService(ReactApplicationContext reactContext) {
        super(reactContext);
    }

    @Override
    public String getName() {
        return "CustomerService";
    }

    @ReactMethod
    public void pushToCustomerService(String uid, String uname, String phone, String realname) {
        //智齿客服第三方接入
        Information info = new Information();
        info.setAppkey(BuildConfig.ZHICHI_APPKEY);
        info.setUid(uid);
        info.setUname(uname);
        info.setTel(phone);
        info.setRealname(realname);
        //返回时是否弹出满意度评价
        info.setShowSatisfaction(true);
        SobotApi.startSobotChat(MainApplication.getMyApplication(), info);
    }
}
public class CustomerReactPackage implements ReactPackage {

    @Override
    public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {

        List<NativeModule> modules = new ArrayList<>();
        modules.add(new CustomerService(reactContext));
        return modules;
    }

    @Override
    public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
        return Collections.emptyList();
    }
}

最后在MainApplication中如下操作即可

然后在RN代码中怎么调用?且看代码

随便新建一个你喜欢的类,增加如下代码,(配合前面的代码理解),这代码的作用是RN和原生的连接器的作用,通过导出这个类,就可以调用之前写的原生方法和类

'use strict';
import {NativeModules} from 'react-native';

export default NativeModules.CustomerService;

调用方法,(随便写个点击事件,然后触发这个方法就可以测试一下,请结合前面原生代码理解)

CustomerUtil.pushToCustomerService('a', 'a', 'a', 'a');

 

使用 TypeScript 开发 React Native 项目 TypeScript 是 JavaScript 的超集,通过添加静态类型系统,为 React Native 开发带来显著优势。它可以帮助开发者在编码阶段捕获错误,减少运行时 Bug,同时提升代码的可读性和可维护性。研究表明,类型安全可以显著降低大型项目的错误率,尤其是在团队协作中。此外,TypeScript 增强了 IDE 的自动补全和代码导航功能,使开发效率更高。然而,TypeScript 的学习曲线和初始配置可能对新手开发者构成挑战,但这些成本通常在项目后期会被其带来的收益抵消。 阅读详情

相关推荐

React Native开发环境搭建,VS Code运行项目步骤详解

React Native开发环境搭建,VS Code运行项目步骤详解

Zh.快乐的程序猿的博客 2831

用react-service做状态管理,适用于react、react native

react-service是一个非常简单的用来在react、react native中进行状态维护的包。 其用法非常简单,只有有限的几个属性和方法,非常好用。 官方文档在这里:https://github.com/caoyongfeng0214/react-service 。 用法如下: 首先,在自己的react或react native项目中安装包: npm install r-service ...

我是码农 877

react-native之项目结构分析

前言庖丁为文惠君解牛,手之所触,肩之所倚,足之所履,膝之所踦,砉然响然,奏刀騞然,莫不中音。合于桑林之舞,乃中经首之会。熟悉项目的结构,是开发的基本也是技术提升的一个重要途径,现总结下自己对react-native项目结构的分析与理解。正文项目结构init 的一个项目结构如图: tests:测试文件夹,执行命令 “npm test”会调用此文件夹,在文件夹中需要引入待测试文件。 android:An

dachaoxuexi的博客 6360

5个月ReactNative感受

在最初接触ReactNative的时候,是网上看了一些关于ReactNative开发和传统开发的比较,然后觉得ReactNative还不错。于是乎正好找了一家准备用ReactNative开发项目的公司,对于ReactNative,我就是个小白,公司也没有移动领域的开发人员,也是他们公司的第一个移动项目,我也是以学习的姿态去触碰这个项目,满满的好奇心,满满的信心,我觉得对于学习这件事儿都不是难事儿,

qq791949970的博客 749

react-native-android之初次相识

作为一名Android开发者,我的感觉就是,一步一卡,卡的潇洒。 但是我还是要学react-native,不要问我为什么,因为我相信一门解决了原生app,开发周期长,开发成本高,升级代价大的语言一定会火,而且react语言看起来那么熟悉,组建式的布局方式,让没有接触过web开发的我,感觉没有一点点晦涩,那么的自然,甚至体会不到web同学口中的革命性创新,native的开发者大概还会蠢萌的认为

xiangzhihong8的专栏 1315

电驱系统功率级“多合一”解决方案

如何提升电驱动系统的产品性能、减小能耗和进一步轻量化,以加强整车市场竞争力,是摆在国内外新能源车企面前的共同课题。为此,具有多年动力总成电子系统开发经验的美国著名半导体及电子解决方案专家——德州仪器(Texas Instrument)提出了多种功率级别“多合一”整合方案和设计思路,助力新能源车企提升技术优势。

yessunday的专栏 1370

ReactNative 学习总结 个人梳理

ReactNative官方文档:React Native 中文网 · 使用React来编写原生应用的框架ReactNative适用于APP的一套多开,适合大型项目的开发,安装环境时注意版本对应。 2、ReactNative的布局默认为flex布局,View标签不能直接写入文字,样式不会被继承, 单位不能加px,vh,vw等可以是百分比。 3、快速获取屏幕尺寸,Dimensions flex布局见我的博客:Flex布局总结_Dragon Wu的博客-优快云博客_flex布局总结案例代码:同样使用Re

qq_50909707的博客 9570

Ubuntu 24.04 新增用户并禁用 root 账户操作指南

Ubuntu 24.04 新增用户并禁用 root 账户操作指南

深山技术宅的博客 1854

探索未来应用的可能性:react-native-foreground-service

探索未来应用的可能性:react-native-foreground-service 在移动开发中,有时我们需要一个服务在用户与应用程序交互时保持运行,这就是react-native-foreground-service的用途。这个开源库为React Native开发者提供了一个强大的工具,可以在后台执行任务,同时维持通知以让用户知道应用正在做什么。 项目介绍 react-native-foreg...

gitblog_00064的博客 491

应急响应之windows日志分析工具logparser使用

windows日志分析工具logparser使用介绍

u013930899的博客 8123

时序预测 | MATLAB实现NGM(1,1)多变量灰色时间序列预测

时序预测 | MATLAB实现NGM(1,1)多变量灰色时间序列预测

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 1514

react-native初学者积累的经验

写在前面 1.react-native更新频率快,很多时候遇到的问题百度上之前的解决方案并不能解决问题 2.开发环境的配置稍微麻烦些,但是官方文档上写得很详细,跟着一步一步做不会有问题 3.很多第三方组件不能及时更新,兼容最新版本或者高版本的rn,有的第三方组件需要修改配置文件,android文件下有不同层级的同名文件,修改时需注意 一、练习项目 这是一个自己初步学习制作的一个小项目,主要是使用r...

吉帅振博客 501

手把手教您windows如何正确的开启局域网共享,如何解决“没权限、空密码访问等诸多问题”,含手动操作教程 + 傻瓜式一键设置工具(局域网共享+打印机管理),二选一总有一款能满足您!

😫 Windows共享总失败?别抓狂!这篇教程带你破解“空密码”访问的核心难题 🔑,四步搞定所有设置。文末还附赠“一键修复”神器 🚀,让文件共享丝滑如德芙!

XiaoqiangClub的博客 1452

react-native : iTerm/Terminal 终端命令转帖记录

1.npm配置镜像、设置代理 2.react-native-vector-icons的集成心得 3.react native中需要rnpm link的组件

iOSTianNan的博客 661

车载网络测试实操源码_使用CAPL脚本实现安全访问解锁,并模拟各种测试场景

在车载诊断中,我们经常会使用到安全访问解锁,常见的场景包括软件刷写前、通过2E服务写入某个DID前、通过31服务执行某个例程前等,都必须先通过27服务进行安全访问,解锁相应安全等级后才能执行上述操作。在开发调试或测试时,有时候需要模拟正常的安全解锁、安全访问秘钥错误、连续多次请求安全访问等,手动操作极为不便。本文将介绍如何使用CAPL脚本实现安全访问解锁,并模拟各种测试场景。

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 1200

【ChatGPT】实用 Prompt 指令大全 —— 一文教你如何更好地挖掘 GPT 的价值

ChatGPT 是由 OpenAI 开发的一种先进的大型语言生成模型,能够理解和生成准确、自然且连贯的文本。文本生成数据分析内容审核语义理解自然语言推理以及其他众多任务ChatGPT是一种基于GPT-3.5架构的大型语言模型,由OpenAI公司开发。该模型在自然语言处理领域有着广泛的应用,可以用于文本生成、文本分类、情感分析、问答系统等任务。本文将从模型的架构、训练方式、优缺点等方面对ChatGPT进行详细介绍。一、模型架构。

AI天才研究院 2万+

react-native-ble-manager组件的使用

最近几个月从h5转到RN的开发,其中遇到了很多坑,因为我们做的是物联网项目,然后又刚好用到了蓝牙组件,蓝牙组件我选择的是react-native-ble-manager,目前我已经跟硬件实现了通信,所以现在想简单写写蓝牙通信以及使用这个组件的的注意事项,本人才疏学浅,博客也写的比较少,不喜勿喷。实现这个ble蓝牙通信我很多是参照https://blog.youkuaiyun.com/withings/arti...

jingoat的博客 5035

SAP:QUERY中SQ02增加选择屏幕权限控制

【代码】SAP:QUERY中SQ02增加选择屏幕权限控制。

weixin_43734184的博客 2325

React Native小白入门学习路径——四

上一周一直在弄着老师布置的各种任务,再加上要做的都还没做完。所以上周的总结到现在才写完发出来。。真的觉得老师太高估我们这些菜鸡了。也许是我太着急了,在自己还没有足够储备去完成自己的项目,总觉得先找一个简单项目跟着做一遍会更快的入门。看着许多的博客里面写着项目开发经历都想着要自己去尝试敲一下,到后面发现博客里的版本很古老,采用了一些已经启用的组件或者方法去开发,现在...

weixin_34262482的博客 79

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

首次react-native开发的心得体会

本人自2019年10月初开始了第一个react-natiive项目的开发。毫无疑问,这是一个不断踩坑,而又不断填坑的旅程。在开发近半个月之后,觉得有必要将此次开发的心得体会以及填坑指南记录下来。本文记录心得体会,填坑指南将在其他博文中陆续补充。 导致我踩了如此多坑的原因: 1.非计算机专业,属于半路出家,身边无师兄弟或老师进行疑难解答或经验交流,未报辅导班,全凭自学; 2.此前学习Web前端开发,...

weixin_43762903的博客 497

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

使用react-native做一个简单的应用-01项目介绍

  学习react-native也有一个月的时间了。当学习了关于react-native的基础知识之后,打算自己去仿一个应用去练手。于是花了10天左右的时间,这个小应用的基本功能也实现的差不多了。   在展示应用之前,首先我想跟大家分享一下我学习这个技术的心得。首先,我是因为感兴趣才学的这个技术,然后我学这技术的时候是没有多少基础的,我的javascript水平也仅仅会在网页中’alert‘一下...

weixin_34168700的博客 285

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Expo框架开发React Native项目指南

使用框架开发 React Native 项目可以显著简化开发流程,尤其适合快速原型开发和跨平台应用构建。

s686ttttt的博客 5769

React Native项目实战

调试接口 API 调试工具是用来对 API 接口进行调试的。比较出名的有 Postman,Insomnia、Postwoman 等。本节以 Insomnia 为例。 首先,需要跳转到 Insomnia 官网,下载(Insomnia Core):https://insomnia.rest/download然后执行安装。 然后,配置开发环境。 配置完之后,就可以根据接口(例如:和风天气接口)的使用规则,在 Insomnia 中调试接口了。使用效果如下: 调用接口 React Native 提供了和 web

weixin_50983325的博客 5418

React-Native项目工程搭建

任何一个项目的搭建,都是考验一个程序员的技术功底,而 React-Native 也不例外。同时,搭建一个 React-Native 的项目工程,其实要比普通的 Web 项目更难一些,因为 React-Native 是一个新的体系,基本它的底层机制和 H5 完全不同,无论是本地存储,还是运行环境,都需要我们熟悉它。

程序员老李|前阿里技术专家,10 年前端。 做免费办公工具:图片压缩、PDF、Markdown、在线简历,全在浏览器本地处理。 文件不上传,不用注册。技术栈 Canvas、WebAssembly、Web Worker。 2421

ReactJS 101移动开发:用React Native构建跨平台原生应用的终极指南

想要学习如何用React Native快速构建跨平台移动应用吗?React Native作为Facebook推出的开源框架,让开发者可以使用JavaScript和React构建真正的原生移动应用。本文将为你提供完整的React Native入门指南,从环境搭建到项目部署,一步步教你掌握这个强大的移动开发工具。无论你是React新手还是有经验的Web开发者,都能通过本文快速上手React Nativ

gitblog_00952的博客 553

Antd Admin 文档站(antd-admin-docs)实战指南:基于 Next.js App Router 与 Nextra 4 的中文技术文档体系搭建

`antd-admin` 仓库在 `apps/basic`(Vite+ 单语言模板)与 `apps/with-lingui`(Vite+ Lingui 双语模板)之外,同仓维护了一个独立的文档站应用 `apps/docs`(包名 `antd-admin-docs`)。本指南以 [apps/docs/README.md](https://link.gitcode.com/i/fd6a58de4051

gitblog_01199的博客 1072
上一篇: React-native初次运行红屏问题
下一篇: FingerprintManager:can't find referenced class android.os.ServiceManager
dhd040805
博客等级 码龄14年 62粉丝 76原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值