WHAT - Expo CLI 的三种连接方式

在学习 React Native 时,遇到的第一个问题就是启动后在真机调试:用相机扫码后,在 Expo Go 应用上并不能正常打开!

文档里给我们提出了通过 Tunnel 方式,那它具体是什么?

原文

https://docs.expo.dev/get-started/start-developing/

Using the Tunnel connection type will make the app reloads considerably slower than on LAN or Local, so it’s best to avoid tunnel when possible. You may want to install and use an emulator or simulator to speed up development if Tunnel is required to access your machine from another device on your network.


关键概念解释:

1. 什么是 Expo 的三种连接方式?

在使用 Expo CLI(开发工具) 启动项目时,你会看到几种连接方式:

连接方式简述优点缺点
Tunnel通过第三方服务(如 ngrok)将本地服务穿透到公网适用于不同网络环境,跨网络连接最慢,受限于外部服务,可能不稳定
LAN使用局域网 IP(如 192.168.x.x)连接手机和电脑快速稳定,只要设备在同一局域网要求手机和电脑在同一个 Wi-Fi 下
Local使用 localhost127.0.0.1最快,仅限模拟器使用实机无法访问,仅限本机模拟器

如何在 Mac 运行模拟器?


2. 为什么 Tunnel 慢?

Tunnel 是将你本地开发服务器的数据通过外部服务(如 ngrok)转发出去。这个过程中:

  • 数据要从你电脑 → ngrok 服务器 → 你的手机,再走一遍反向返回。
  • 每次热更新时,数据往返都需要走外网通道。
  • 所以非常慢,甚至在网络不稳定的环境下容易失败或无法连接。

3. 哪种方式最推荐?

开发速度(热更新)排序如下:

🥇 Local(最快,推荐用于模拟器)
🥈 LAN(推荐用于真机 + 同局域网)
🥉 Tunnel(只能在无法使用上面两种的场景使用)


什么时候必须使用 Tunnel?

  • 手机与电脑不在一个 Wi-Fi 下(比如公司网络有隔离)。
  • 你需要远程调试一台不在你本地网络的设备。
  • 公司限制了局域网通信,或者你是在公共网络。

官方建议的做法

如果你 不得不使用 Tunnel,那就使用 模拟器(Android Emulator / iOS Simulator) 来加快开发效率。

模拟器运行在电脑本地,因此可以使用 Local 模式,不走任何网络,热更新和构建都飞快。


总结

问题解决方案
Tunnel 太慢优先改用 LAN 或 Local 模式
手机连不上 LAN 模式确保手机和电脑同一 Wi-Fi
实在只能用 Tunnel使用模拟器代替真机开发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@PHARAOH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值