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.pswp.cn/news/911974.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/911974.shtml
英文地址,請注明出處:http://en.pswp.cn/news/911974.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

XML讀取和設置例子

在Qt C中&#xff0c;可以使用Qt的 QDomDocument類來讀取、更新和保存XML文件。這個類提供了對XML文檔的強大操作能力&#xff0c;支持通過DOM&#xff08;文檔對象模型&#xff09;對XML進行讀取、修改、添加和刪除節點等操作。 下面是一個詳細的例子&#xff0c;演示如何在Qt…

ubuntu 遠程桌面 xrdp + frp

經測試VNC啟動桌面&#xff0c;并非常規的桌面。 不如RDP好用。因此不用VNC server 一類。 直接安裝xrdp 實現UBUNTU 到UBUNTU 桌面的遠程共享。 sudo apt install xrdpsudo systemctl start xrdp查看狀態&#xff1a; sudo systemctl status xrdp ● xrdp.service - xrdp d…

el-table表頭添加說明

1、el-table-column添加render-header 2、編寫render函數 renderTipsHeader(h, { column }, item) {return h(span,[h(span, column.label),h(el-tooltip,{props:{effect:dark,content:item.headertip,placement:top},},[h(i, {class:el-icon-question,style:color:#C0C4CC;mar…

【AI論文】MultiFinBen:一個用于金融大語言模型評估的多語言、多模態且具備難度感知能力的基準測試集

摘要&#xff1a;近期&#xff0c;大型語言模型&#xff08;LLMs&#xff09;的進展加速了金融自然語言處理&#xff08;NLP&#xff09;及其應用的發展&#xff0c;然而現有的基準測試仍局限于單語言和單模態場景&#xff0c;往往過度依賴簡單任務&#xff0c;無法反映現實世界…

使用 .NET Core+GcExcel,生成 Excel 文件

引言 在當今數字化辦公和數據處理的大環境下&#xff0c;在線生成 Excel 文件成為了許多企業和開發者的需求。.NET Core 作為一個跨平臺的開源框架&#xff0c;具有高效、靈活等特點&#xff0c;而 GcExcel 是一款功能強大的 Excel 處理組件。將二者結合&#xff0c;可以方便地…

【代碼解析】opencv 安卓 SDK sample - 1 - HDR image

很久沒有寫安卓了&#xff0c;復習復習。用的是官方案例&#xff0c;詳見opencv-Android-sdk 包 // 定義包名&#xff0c;表示該類的組織路徑 package org.opencv.samples.tutorial1;// 導入所需的OpenCV和Android類庫 import org.opencv.android.CameraActivity; // OpenCV…

Web中間件性能調優指南:線程池、長連接與負載均衡的最佳實踐

目錄 引言一、Web容器線程池配置不當1.1 線程池參數的核心作用與影響1.2 線程池大小計算模型1.3 動態調優實踐 二、Keep-Alive機制配置缺陷2.1 Keep-Alive的工作原理2.2 典型配置問題與影響2.3 優化配置建議 三、負載均衡策略缺失3.1 負載均衡的核心價值3.2 主流負載均衡算法對…

15個AI模擬面試平臺 和 簡歷修改 / 真人面試平臺

對15個AI模擬面試平臺的詳細分析&#xff0c;每個平臺都將按照統一的框架進行評估。 補充重要的&#xff1a; 【1】AMA interview 聽說最好&#xff0c;最貴 1. Final Round AI 網址: https://www.finalroundai.com/ 功能深度剖析: Final Round AI 提供了一套全面的求職工具…

開始使用 Elastic AI Assistant for Observability 和阿里 Qwen3

這篇文章是繼之前的文章 “在本地電腦中部署阿里 Qwen3 大模型及連接到 Elasticsearch” 的續篇。如果你還沒有部署好自己的 Qwen3&#xff0c;那么請閱讀之前的那篇文章來安裝好環境&#xff0c;然后再繼續今天練習。在今天的文章中&#xff0c;我們將展示如何結合 Qwn3 和 El…

穩定幣技術全解:從貨幣錨定機制到區塊鏈金融基礎設施

引言&#xff1a;穩定幣的技術定位 根據國際清算銀行&#xff08;BIS&#xff09;2025年定義&#xff1a;穩定幣是以法定資產或算法機制維持價值穩定的區塊鏈代幣&#xff0c;其本質是傳統金融與加密技術的接口層。 核心價值&#xff1a;解決加密貨幣波動性問題 → 成為DeFi生態…

syncthing忘記密碼怎么辦(Mac版)?

一、問題描述 syncthing安裝在Mac端&#xff0c;更改原同步文件夾的路徑&#xff0c;需要重新設計同步文件&#xff0c;設置了密碼且忘記密碼。未看見忘記密碼的選項。 網上查詢解決方案&#xff0c;發現只能通過修改配置文件才能繼續正常訪問。但是并沒有在建議路徑中找到配置…

半導體FAB中的服務器硬件故障監控與預防全方案:從預警到零宕機實戰

&#x1f4ca; 服務器硬件故障監控與預防全方案&#xff1a;從預警到零宕機實戰 關鍵詞&#xff1a;SMART監控 RAID預警 IPMI傳感器 性能基線 Prometheus Zabbix 高可用架構 一、硬件故障前的7大預警信號&#xff08;附關聯工具&#xff09; 故障類型關鍵指標監控工具預警閾值…

一分鐘了解Transformer

一分鐘了解Transformer A Minute to Know About Transformer By JacksonML 1. Transformer是什么&#xff1f; Transformer模型是一種神經網絡&#xff0c;它通過學習上下文及其含義&#xff0c;跟蹤序列數據中&#xff08;如本句中的單詞&#xff09;中的關系。Transforme…

【Ubuntu學習】嵌入式編譯工具鏈熟悉與游戲移植

目錄 一、Ubuntu 系統編譯 MININIM 源碼 1. 環境準備與依賴配置 2. 編譯 Allegro5.2.5 引擎 ?編輯 3. 編譯 MININIM 源碼 4. 故障解決 5. 打包與遷移 二、嵌入式平臺編譯實踐 1. 樹莓派 3B 編譯 MININIM 2. Android 平臺交叉編譯 三、樹莓派 3B 流水燈實驗&#xf…

川翔云電腦全新上線:三維行業高效云端算力新選擇

一、核心定位與優勢 云端虛擬工作站服務 依托云端高性能 CPU/GPU 集群&#xff0c;提供遠程桌面服務&#xff0c;支持普通設備運行專業軟件。 按需付費模式&#xff1a;無需采購高端硬件&#xff0c;大幅降低成本投入。生態協同優勢&#xff1a;與渲染 101 同屬母公司&#…

百面Bert

百面Bert Q1. Bert與Transformer有什么關系 Bert是基于Transformer架構中的Encoder進行搭建的。 具體來說&#xff0c;Bert的核心組件是幾個Encoder layer的堆疊。Encoder layer中&#xff0c;也是兩個子層&#xff0c;分別是注意力層和intermediate層&#xff08;Bert中的叫…

Docker Compose與私有倉庫部署

目錄 一. Docker 重啟策略 二. Docker Compose工具的應用 1. 什么是 Docker compose 2. Docker compose 的安裝 3. 編輯文件格式及編寫注意事項 4. docker-compose的基本用法 三. Harbor私有倉庫 1. 什么是Harbor 2. Harbor 的優勢 3. Harbor 的構成 四. 部署Harbor…

數字隔離器,如何扛起現代智能家電的電氣安全“大旗”

隨著現代社會生活節奏的不斷加速&#xff0c;人們對于屬于自己的休閑時間愈發珍視&#xff0c;而智能家居作為提升人類居家幸福感與舒適度的現代化產物&#xff0c;不僅能有效滿足人們對高品質生活的追求&#xff0c;還能推動產業升級與經濟增長&#xff0c;引導智能家電設備從…

mybatis3調用瀚高procedure報錯(APP)

文章目錄 環境文檔用途詳細信息 環境 系統平臺&#xff1a;Linux x86-64 Red Hat Enterprise Linux 7 版本&#xff1a;4.5 文檔用途 mybatis3調用瀚高procedure報錯&#xff08;錯誤信息&#xff1a;調用過程請使用CALL&#xff09;的解決方案。 詳細信息 客戶項目中使用…

96道Docker 容器高頻題整理(附答案背誦版)

簡述什么是 Docker 容器&#xff1f; Docker容器是一個開源的應用容器引擎&#xff0c;它讓開發者可以將他們的應用以及依賴包打包到一個可移植的容器中&#xff0c;然后發布到任何安裝了Docker引擎的服務器上&#xff0c;包括流行的Linux機器、Windows機器等。Docker容器利用…