React Native 三大痛点:升级版本困难、调试错误不便、性能不够好


React Native 社区(非官方)在两个月前发起了一项问卷调查 (State of React Native),目的是希望进一步了解开发者使用 React Native 框架遇到的痛点,以及替代工具的选择。

近日他们公布了调查结果,总的来说,多数受访者认为 React Native 有三大痛点:

  • 升级版本困难
  • 调试错误不便
  • 性能不够好

此外还有超过半数的受访者指出,React Native 框架还存在另外两个严重问题,分别是存在无人维护的软件包,以及过分依赖第三方函数库。

State of React Native 发起人,同时也是 Software Mansion 的软件工程师 Kacper Kapuściak 认为,由于维护 React Native 需要三种以上的编程语言,同时还要了解 iOS 和 Android API 知识,所以这项工作实际上并不容易,而且移动端平台的频繁更新,使得许多桥接套件很快就过时。

最受 React Native 开发者偏爱的替代框架是 SwiftUI 和 Jetpack Compose,而 Ionic、Xamarin 和 Apache Cordova 则相对不那么受 React Native 开发者喜爱。不够这项调查有趣的地方是,虽然 React Native 开发者普遍喜爱 Cordova 和 Ionic,但是 Cordova 使用率却位居第一,Ionic 也以略微差异位居第二。这说明虽然目前开发者必须使用这些套件,但也乐意看到他们被取代。

React Native 中有许多新兴客户端状态库让开发者感兴趣,包括 Zustand、Jotai 和 Legend State,但是它们的采用率相对较低,Redux 函数库仍是更为热门的选择,使用率仅低于内置的 Hooks。而在服务器端状态函式库方面,TanStack Query 和 Apollo 表现相当,但是在开发者表达会再次使用的比例上,Apollo 明显更少。

总的来说,React Native 框架还有许多可改进之处,不过受访者对框架整体感到满意,无论是构建应用程序的复杂度,或者是框架的改进速度,社区成员皆认为发展适中。

这是第一份 State of React Native 调查报告,在 React Native 社区中收集到超过 1,800 份回应,发起人 Bartłomiej Bukowski 表示,React Native 开发者常会面临不知道该在项目使用那种解决方案的困扰,现在通过集中比较,希望能够帮助开发者更好地选择想要使用的技术。

调查报告完整内容:https://results.stateofreactnative.com/


相關推薦

2022-09-18

React Native 0.70.1 现已发布,具体更新内容如下: Added 为 HermesExecutorFactory 添加更多调试设置 为 turbo 模块支持 TypeScript 数组类型(仅限组件) Changed 接受 TypeScript 类型T | null | undefined作为 turbo 模块中 T 的可能类型 将 re

2022-12-13

@evernoteHW、@soulhat、@xueshuai、@LuMeiling 四、RN​ 1. React Native 0.70 版本支持​ React Native 0.70 版本已于 2022-9-5 正式发布。在 0.70 版本中 Hermes 已成为默认的 JS 引擎,我们将与 RN 默认配置保持一致,如不需要可自行关闭。Hermes 也

2023-09-27

React Native 0.72.5 现已发布,具体更新内容如下: Changed 将 CLI 升级到 11.3.7(6f02d55deb) 将 @react-native/codegen 升级到 0.72.7 ( 4da991407d) Fixed Android specific 修复在 Windows 上构建 Android 的问题。(054ab62be0) 在 Windows host. 上

2023-07-13

React Native 0.72.2 现已发布,具体更新内容如下: Changed 从模板中删除已弃用的存根类型@types/metro-config(63f78ea8de) 将 CLI 升级到 11.3.5,Metro 升级到 0.76.7(ba5fa9c394) 将@react-native/metro-config升级至0.72.9(21daa6e790,f37386176

2023-02-03

@crazyonebyone、@evernoteHW、@soulhat、@xueshuai、@LuMeiling 2. React Native 能力​ 为了让整体开发体验跟 RN 更加一致,减少开发者的理解成本。我们对 @tarojs/rn-runner 的代码进行了重构。将 Taro RN 需要的所有编译逻辑,都封装到了 metro 配置

2022-09-06

React Native 0.70 版本正式发布,这个版本有几项改进,比如 Codegen 的新的统一配置、Hermes 作为默认引擎、对 Android 构建的完整 CMake 支持,还有对新架构文档的更新。 具体更新内容如下: New Architecture 的新文档 在过去的几个月

2023-11-03

最近,合作适配了 Solon Native 的第一个开源项目:dromara/neutrino-proxy (Solon Native 里程碑意义!)。让我们对 Java 原生编译又起了新的希冀。总体来说: 适配调整完后,代码变化不太大 整个过程是很麻烦的。因为

2022-09-23

支持使用 Vue3 编译原生自定义组件 RN 默认使用 react-native 0.69 版本,并增加了对 React18 的支持 Typings 重构类型系统,根据各小程序官方文档,补全小程序组件类型声明文件(相关讨论:#11740) 修复 小程序

2023-01-21

React Native 0.71.1 现已发布,具体更新内容如下: Added Android specific 添加jsinspector到 prefab target(a80cf96fc8) iOS specific 将initialProps属性添加到RCTAppDelegate(b314e6f147) Changed 将 CLI 升级到 10.1.3(b868970037) 将 RNGP 提高到

2023-07-01

React Native 0.72.1 现已发布,具体更新内容如下: Added iOS specific 添加警告以帮助用户从互操作层迁移。(a702d0515f) 允许在互操作层中查找不带 RCT 前缀的 ViewManager(a28881a3d7 ) Changed react-native/metro-config现在包括

2023-04-21

React Native 0.71.7 现已发布,此版本主要旨在解决在三星设备上使用多行 TextInput 的 ANR 问题(#35936、#35590)。 具体更新内容如下: Fixed iOS specific 解决 Hermes 性能退步问题(9be2959) Android specific 解决了文本组件在 new arc

2024-01-31

React Native 0.73.3 现已发布,具体更新内容如下: Added iOS specific 查找 codegen 声明时处理 TSAsExpression (02957718d7) Changed 将 CLI 升级到 12.3.2(bcb229e8f8) Android specific 在 ReactActivity 的 onRequestPermissionsResult() 中调用 super.onRequ

2024-02-29

React Native 0.73.5 现已发布,具体更新内容如下: Security 将 CLI 更新到 12.3.6(ffcd8f5249) Changed Hermes bump ( 3bdd54a51c) Fixed 修复:修复 codegen 无法找到所有第三方库的问题 (67e2bb455f) 修复传递给库的 compiler flag

2023-03-31

React Native 0.71.5 现已发布,具体更新内容如下: Changed 将 CLI 升级到 10.2.2,将 Metro 升级到 0.73.9(4c3bc24893),包含: CLI 修复:正确列出 ios 设备和模拟器(相关 PR) Metro 修复:修复 NodeWatcher 中新目录的监视内容(ab86982