当前位置: 首页 > news >正文

WHAT - React Native 的 Expo Router

文章目录

  • 核心定义
  • 核心理念
  • 核心功能解析(Features)
    • 1. Native
    • 2. Shareable
    • 3. Offline-first
    • 4. Optimized
    • 5. Iteration
    • 6. Universal
    • 7. Discoverable
  • 总结
  • 示例:页面结构如何变成导航?

原文:https://docs.expo.dev/router/introduction/

这段文档介绍了 Expo Router 的功能和特点。这是一种基于文件结构的导航方式,类似于 Web 里的 Next.js 或 Remix 的路由系统,但用于 React Native + Web 多端统一开发。

下面我将逐段解释它的含义,帮你理解核心概念和实际用途。


核心定义

Expo Router is a file-based router for React Native and web applications.

解释
Expo Router 是一个 基于文件系统的路由解决方案,用于 React Native,同时支持 Web 应用。你创建的页面文件(.tsx 文件)本身就自动成为导航路由。


It allows you to manage navigation between screens in your app, allowing users to move seamlessly between different parts of your app’s UI, using the same components on multiple platforms (Android, iOS, and web).

解释
它基于同一个代码结构(页面和组件),实现多端(iOS / Android / Web)的一致导航体验。你写一次页面,在不同平台通用。


核心理念

It brings the best file-system routing concepts from the web to a universal application — allowing your routing to work across every platform. When a file is added to the app directory, the file automatically becomes a route in your navigation.

解释

  • 类似 Next.js 的自动路由:你在 app/ 目录下新建一个 settings.tsx 文件,这个页面就能通过 /settings 访问。
  • 不再需要手动注册 Stack.ScreenTab.Screen
  • 通过文件结构来定义导航结构,更直观易维护。

核心功能解析(Features)

1. Native

Built on top of our powerful React Navigation suite…

解释

  • Expo Router 是建立在 react-navigation 基础上的。
  • 所以你熟悉的栈导航、底部 Tab、Drawer 全部支持。
  • 但 Expo Router 抽象了一层,让你不再需要手动管理 <Stack.Screen> 等配置。

2. Shareable

Every screen is automatically deep linkable…

解释

  • 每个页面都自动支持 深度链接(Deep Link)
  • 比如你可以通过一个链接打开某个特定页面:myapp://settings/profile
  • 也可以用于 Web 上的链接分享:https://yourapp.com/settings

3. Offline-first

Apps are cached and run offline-first…

解释

  • 构建出的 App 是默认离线可运行的。
  • 支持 Expo 的更新机制(expo-updates),即使用户没有网络也能进入 App,等有网络时自动更新。
  • 所有的 URL 路由解析也不依赖后端服务器。

4. Optimized

Routes are automatically optimized…

解释

  • 页面是 懒加载 的:即用户不访问,页面组件就不会加载,提高性能。
  • 开发环境下也使用 延迟打包,提高编译速度。
  • 这对大型 App 尤其重要。

5. Iteration

Universal Fast Refresh…

解释

  • 所有平台都支持 Fast Refresh(热重载),保持快速开发体验。
  • “artifact memoization” 是构建优化的一部分,避免每次构建都全量编译,提升速度。

6. Universal

Android, iOS, and web share a unified navigation structure…

解释

  • 一个统一的路由系统,支持三端共享。

  • 如果某些页面需要平台特定逻辑,也可以在每个 route 页面里加平台判断,如:

    import { Platform } from 'react-native';
    

7. Discoverable

Build-time static rendering on web, and universal linking to native…

解释

  • Web 端可以预渲染(Static Site Generation,SSR/SSG),对 SEO 友好。
  • 原生 App 支持通用链接(Universal Links / Android App Links),也就是说你可以通过网页链接唤起 App 中的具体页面。

总结

Expo Router = 基于文件结构的路由系统,让你像写 Web 那样开发原生 App(iOS / Android / Web)页面导航。

它的核心优势在于:

  • 自动注册路由
  • 路由即目录结构
  • 深度链接、跨平台统一、懒加载优化
  • 原生 + Web 都适配

示例:页面结构如何变成导航?

📁 app/┣ 📄 index.tsx        → /┣ 📁 settings/┃ ┣ 📄 index.tsx      → /settings┃ ┗ 📄 profile.tsx    → /settings/profile┣ 📄 about.tsx        → /about

你访问 /settings/profile,就会自动加载 app/settings/profile.tsx 文件。不需要手动写 Stack.Screen

http://www.lryc.cn/news/574608.html

相关文章:

  • 华为云Flexus+DeepSeek征文|华为云ModelArts Studio:利用New API实现大模型网关与AI资产管理的无缝对接
  • 梳理React中的fiber架构
  • 学历信息查询API (IVYZ9A2B) 的对接实战 | 天远API
  • WPF/Net Core 简单显示PDF
  • WEB安全--Java安全--jsp webshell免杀1
  • 原子操作(CAS)
  • 【AI大模型】Spring AI 基于Redis实现对话持久存储详解
  • 打包上传到Linux部署并启动
  • 鸿蒙 FolderStack 组件全解析:折叠屏悬停布局开发指南
  • kvm console 的使用
  • linux网 络
  • 计算机基础和Java编程的练习题
  • 储能系统的离网,并网,构网,跟网 简介
  • 【HTTP】取消已发送的请求
  • Linux线程概念及常用接口(1)
  • OSS客户端签名直传实践:Web端安全上传TB级文件方案(含STS临时授权)
  • 从牛顿流体到弹性固体:旋转流变仪的高精度流变特性测定与工业应用
  • Unity_UI_NGUI_UI组件
  • 对人工智能的厌倦感是真实存在的,而且它给品牌带来的损失远不止是参与度的下降
  • 【Linux网络编程】多路转接I/O(一)select,poll
  • 51c嵌入式~电路~合集8
  • 一、永磁同步电机矢量控制——电机数学模型
  • 第十节 新特性与趋势-CSS层叠规则升级
  • AI智能化高效办公:WPS AI全场景深度应用指南
  • 设计模式系列(09):结构型模式 - 适配器模式
  • ffmpeg环境配置
  • HTTP响应头Content-Disposition解析
  • 【MV】编排8:基于时间线数据多层分段避免过度拟合特定歌曲
  • Verilog基础:编译指令`default_nettype
  • Windows搭建opencv cuda开发环境并验证是否成功