使用 reactoron 调试 RN 应用

什么是Reactotron

Reactotron 是一个强大的 React 和 React Native 应用程序调试器 。它为开发人员提供了一个易于使用的界面,用于监控其应用程序的状态、网络请求和性能指标,并且可用于任何规模的项目,从小型个人应用程序到大型企业应用程序。

拥有强大的插件系统,允许开发人员扩展和增强 Reactotron 的功能。

您可以使用 Reactotron 来:

  • 查看您的应用程序状态。
  • 显示 API 请求和响应。
  • 执行快速性能基准测试。
  • 订阅您的应用程序状态的部分内容。
  • 显示类似以下内容的消息console.log。
  • 使用源映射堆栈跟踪(包括 saga 堆栈跟踪)跟踪全局错误。
  • 调度行动就像政府运行的精神控制实验。
  • 使用 Redux 或 mobx-state-tree 热交换应用程序的状态。
  • 在 React Native 中显示图像叠加。
  • 在 React Native 中跟踪您的异步存储。

您可以将其作为开发依赖项插入到您的应用程序中,因此它不会增加您的生产构建大小。

安装

在创建项目之前,首先要明确开发环境,如果没有安装相应的环境,可以通过官方的环境搭建指南一步一步搭建。 下文中,项目的环境为:

  • Node.js(v18.7.0)
  • watchman(2023.03.13.00)
  • Yarn(v1.22.19)
  • Java(v17.0.10 2024-01-16 LTS)
  • Android Studio(v2023.2.1)

项目创建可以通过官方提供的方式进行创建:npx react-native@latest init <项目名>

Reactotron 作为桌面应用程序(用 Electron 编写)存在,通过 Websocket 与您的 React 或 React-Native 应用程序进行通信。它适用于 macOS、Linux 和 Windows。

首先,您需要安装 Reactotron 桌面应用程序。可以在GitHub上找到最新版本。

安装后,您需要将 Reactotron 客户端添加到您的项目中。请按照以下快速入门指南之一在您的项目中启动并运行 Reactotron。

  • 将 Reactotron 添加到您的 React Native 项目中作为开发依赖项。

    shell 复制代码
    $ yarn add reactotron-react-native -D
  • 在根文件夹中创建一个文件 ReactotronConfig.js 并粘贴以下内容:

    js 复制代码
    import Reactotron from "reactotron-react-native";
    import AsyncStorage from "@react-native-async-storage/async-storage";
    
    Reactotron.setAsyncStorageHandler(AsyncStorage)
      .configure() // 控制连接和通信设置
      .useReactNative() // 添加所有内置的 react native 插件
      .connect();

    还可以创建自己的插件并通过以下方式提供:

    js 复制代码
    import Reactotron from 'reactotron-react-native';
    import AsyncStorage from '@react-native-async-storage/async-storage';
    
    Reactotron.setAsyncStorageHandler(AsyncStorage)
      .configure({
        name: 'React Native Demo',
      })
      .useReactNative({
        asyncStorage: false, 
        networking: {
          ignoreUrls: /symbolicate/,
        },
        editor: false, 
        errors: {veto: stackFrame => false},
        overlay: false,
      })
      .connect();
  • 将 Reactotron 添加到你的项目中 在 index.jsApp.tsx 中加入如下代码。

    js 复制代码
    if (__DEV__) {
      import('./ReactotronConfig.js').then(() =>
        console.log('Reactotron Configured'),
      );
    }

    刷新您的应用程序(或运行 npx react-native start)并立即查看 Reactotron。你看到那条CONNECTION线了吗?单击该按钮即可展开。

    如果您使用的是 Android 设备或模拟器,请运行以下命令以确保它可以连接到 Reactotron:

    shell 复制代码
    $ adb reverse tcp:9090 tcp:9090

    如果在项目中做一些调整后,再热更新,可以看到如下:

reactotron 中还提供了自定义命令插件高级技巧,可以查看文档。

相关推荐
哼唧唧_3 小时前
使用 React Native 开发鸿蒙(HarmonyOS)运动健康类应用的系统化准备工作
react native·react.js·harmonyos·harmony os5·运动健康
哼唧唧_2 天前
React Native开发鸿蒙运动健康类应用的项目实践记录
react native·harmonyos·harmony os5·运动健康
程序员小刘2 天前
鸿蒙【HarmonyOS 5】 (React Native)的实战教程
react native·华为·harmonyos
烈焰晴天2 天前
使用ReactNative加载Svga动画支持三端【Android/IOS/Harmony】
android·react native·ios
哼唧唧_3 天前
使用 React Native 开发鸿蒙运动健康类应用的高频易错点总结
react native·react.js·harmonyos·harmony os5·运动健康
鄂鱼3 天前
使用react-native-skia实现自绘地图实践与踩坑记录
react native
依旧003 天前
react native webview加载本地HTML,解决iOS无法加载成功问题
react native·ios·html·vite·webview
不想当reducer3 天前
React Native 阿里云 OSS 上传实战:从相册资源处理到动态签名管理
前端·javascript·react native
hellokai4 天前
ReactNative介绍及简化版原理实现
android·react native
哼唧唧_5 天前
基于React Native开发鸿蒙新闻类应用的实战开发笔记
react native·华为·新闻·harmony os5