HO與OH差異之Navigation三

在上一篇內容中我們介紹了HO與OH差異之Navigator,我們也了解了Navigator的基本概念和大致了解了一下他的基礎用法,既然談到差異肯定就不止這兩種差異,今天就讓我們來了解第三種差異NavRouter,其中在HO中我們并沒有這種路由方式但是在OH中我們就存在這種路由方式。

首先我們先介紹一下NavRouter的基本概念

NavRouter: 導航組件,默認提供點擊響應處理,不需要開發者自定義點擊事件邏輯。

也就是說它也是天然的支持進行跳轉,但是真的會有這么簡單嗎?

其中肯定有些必要的條件在這其中:

必須包含兩個子組件,其中第二個子組件必須為NavDestination。

子組件個數異常時:

  1. 有且僅有1個時,觸發路由到NavDestination的能力失效。
  1. 有且僅有1個時,且使用NavDestination場景下,不進行路由。
  1. 大于2個時,后續的子組件不顯示。
  1. 第二個子組件不為NavDestination時,觸發路由功能失效。

也就是說其實它的這種能力是實現我們在一個開發的頁面進行兩個頁面的跳轉,什么意思呢?其實就是相當于我們在同一個屋子里造了兩間房這個意思。不用我們再單獨的購入另外一個屋子。換成我們這邊的思路就是我們只需要在一個@Entry頁面進行開發,另外一個可以是組件,這就是一種性能優化上的體現。他不進行深度的拷貝。

接下來我們上示例:

typescript
@Entry
@Component
struct NavRouterPage {

? build() {
??? NavRouter() {
????? Column() {
??????? Button("
點擊我進行跳轉到下一個路由")
????? }
????? NavDestination() {
??????? Text("我是點擊跳轉后的頁面")
????? }.title("NavDestination")
??? }
??? .mode(NavRouteMode.PUSH)
? }
}

如上代碼,與圖片!!翻車了嗎難道?為什么無法進行跳轉?

似乎差點就要被搞懵逼了,但是我們仔細想想NavRouter只是一個導航組件,它還是要有依賴的,依賴他的大哥“Navigation”,跳轉的組件是NavDestination,從一開始學習我們就知道Navigation與NavDestination是相互搭配使用的,此時我們加上Navigation的效果如下:

typescript
@Entry
@Component
struct NavRouterPage {

? build() {
??? Navigation() {
????? NavRouter() {
??????? Column() {
????????? Button("
點擊我進行跳轉到下一個路由")
??????? }
??????? NavDestination() {
????????? Text("我是點擊跳轉后的頁面")
??????? }.title("NavDestination")
????? }
????? .mode(NavRouteMode.PUSH)
??? }
? }
}

在外層加個Navigation就可以進行跳轉了。其中NavRouter還有很多的屬性可以讓我們進行使用,其中我演示代碼中的mode就是其中之一,主要功能是配置跳轉的方式。

其中NavRouter除了可以使用推薦的寫法外我們還可以進行自定義的跳轉,我們可以進行配置NavRouter的參數進行跳轉,NavRouter(value: RouteInfo)。

但是這種方式就和我們一開始使用Navigation有點類似,需要注冊一個路由棧然后通過路由棧進行跳轉,示例如下:
?

typescript
@Entry
@Component
struct NavRouterPage {

? build() {
??? Navigation() {
????? NavRouter({ name: "NavRouterPage2" }) {
??????? Column() {
????????? Button("
點擊我進行跳轉到下2頁面")
??????? }
????? }
????? .mode(NavRouteMode.PUSH)
??? }
? }
}

typescript
@Builder
function NavRouterPage2Builder() {
? NavRouterPage2()
}

@Entry
@Component
struct NavRouterPage2 {

? build() {
??? NavDestination() {
????? Text("
我是NavDestination2頁面")
??? }.title("NavDestination2")
? }
}

Harmony OS? NEXT? / OpenHarmony? API12

本次就暫時介紹這么多, 在下一篇內容中我會給大家介紹一下樣式復用的修飾器

謝謝各位的觀看,有錯誤不足的地方, 本人樂于接受各位的意見

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/76102.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/76102.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/76102.shtml

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

相關文章

Java 程序員面試題:從基礎到高階的深度解析

引言 Java 作為全球最流行的編程語言之一,其面試題不僅考察候選人的編程能力,更關注對底層原理和架構設計的理解。本文將系統梳理 Java 面試中的高頻考點,結合代碼示例與原理分析,助您從容應對技術面試。 一、Java 基礎語法與核…

Python操作Excel文件的11種方法

Python操作Excel文件的11種方法 pandas:功能強大,支持數據清洗、轉換和分析,適用于數據分析和處理任務。 openpyxl:專注于 .xlsx 文件格式,提供細粒度的操作,適用于需要對 Excel 文件進行細粒度操作的場景…

ZGC初步了解

ZGC ZGC和G1,CMS一樣都是一種垃圾回收器。那其實G1已經很不錯了 為什么還需要ZGC呢 ZGC(The Z Garbage Collector)是JDK 11中推出的一款低延遲垃圾回收器,它的設計目標包括: 停頓時間不超過10ms; 停頓時…

Tof 深度相機原理

深度相機(TOF)的工作原理_tof相機原理-CSDN博客 深度剖析 ToF 技術:原理、優劣、數據糾錯與工業應用全解析_tof技術-CSDN博客 飛行時間技術TOF_tof計算公式-CSDN博客 深度相機(二)——飛行時間(TOF)_飛行時間技術-C…

c++-函數增強

一、編譯器對函數名的處理 1. C與C的差異 C編譯器:保留原始函數名,無額外處理。例如: int add(int a, int b) { return a b; } 在匯編代碼中仍為add。 C編譯器:通過name mangling(名稱修飾)生成唯一函數…

跟著StatQuest學知識08-RNN與LSTM

一、RNN (一)簡介 整個過程權重和偏置共享。 (二)梯度爆炸問題 在這個例子中w2大于1,會出現梯度爆炸問題。 當我們循環的次數越來越多的時候,這個巨大的數字會進入某些梯度,步長就會大幅增加&…

HarmonyOS 之 @Require 裝飾器自學指南

在 HarmonyOS 應用開發工作中,我頻繁碰到組件初始化傳參校驗的難題。在復雜的組件嵌套里,要是無法確保必要參數在構造時準確傳入,就極易引發運行時錯誤,而且排查起來費時費力。一次偶然的機會,我接觸到了 Require 裝飾…

CDN節點對網絡安全掃描的影響:挑戰與應對策略

引言 在當今互聯網環境中,內容分發網絡(CDN)已成為提升網站性能和用戶體驗的關鍵技術。然而,CDN的廣泛應用也為網絡安全掃描帶來了新的挑戰。本文將深入探討CDN節點如何影響各類安全掃描工作,分析由此產生的安全風險,并提供有效的…

【Git多分支使用教程】

Git多分支使用教程 Git多分支使用手冊目錄多分支只拉取一個多分支拉取指定幾個步驟 1:克隆第一個分支步驟 2:獲取其他分支 常見問題與解決方法1. 錯誤:origin/分支名 is not a commit2. 分支名稱沖突3. --single-branch 限制 總結 Git多分支使…

【身份安全】OAuth 2.0工作原理(一)

目錄 OAuth 授權框架一、OAuth 角色二、協議流程三、應用注冊(Application Registration)用戶 ID(Client ID) 和 用戶密碼(Client Secret) 四、權限授予1、授權碼鏈接2、用戶授權申請3、應用程序接收授權碼…

大疆上云api直播功能如何實現

概述 流媒體服務器作為直播畫面的中轉站,它接收推流端的相機畫面,同時拉流端找它獲取相機的畫面。整個流程如下: 在流媒體服務器上創建流媒體應用(app),一個流媒體服務器上面可以創建多個流媒體應用約定推拉流的地址。假設流媒體服務器工作在1935端口上面,假設創建的流…

ESP-01模塊連接手機熱點問題及解決方法

在使用ESP-01模塊連接手機熱點時,可能會遇到一些問題。本文將詳細介紹如何解決這些問題,并分享最終通過將WiFi切換到2.4GHz成功解決問題的經驗。 一、問題描述 在嘗試使用ESP-01模塊連接手機熱點時,遇到了連接失敗的問題。以下是操作過程中…

NG-ZORRO中tree組件的getCheckedNodeList怎么使用

在 NG-ZORRO(Ant Design for Angular) 的 Tree 組件 中,getCheckedNodeList 方法用于獲取當前選中的節點列表(包括半選狀態節點)。以下是具體用法和示例: 基本用法 首先,確保你已通過 ViewChil…

業務流程先導及流程圖回顧

一、測試流程回顧  1. 備測內容回顧  備測內容: 本次測試涵蓋買家和賣家的多個業務流程,包括下單流程、發貨流程、搜索退貨退款、支付搶購、換貨流程、個人中心優惠券等。 2. 先測業務強調  1)測試業務流程 …

從ChatGPT到AutoGPT——AI Agent的范式遷移

一、AI Agent的范式遷移 1. ChatGPT的局限性與Agent化需求 單輪對話的“工具屬性” vs. 多輪復雜任務的“自主性” ChatGPT 作為強大的生成式AI,雖然能夠進行連貫對話,但本質上仍然是“工具型”AI,依賴用戶提供明確的指令,而無法自主規劃和執行任務。 人類介入成本過高:提…

【Kafka】分布式消息隊列的核心奧秘

文章目錄 一、Kafka 的基石概念?主題(Topic)?分區(Partition)?生產者(Producer)?消費者(Consumer)? 二、Kafka 的架構探秘?Broker 集群?副本機制? 三、Kafka 的卓越特性?高…

【藍橋杯14天沖刺課題單】Day 1

1. 題目鏈接:19937 藝術與籃球 該題目的難點主要在20240413這個日期需要結束程序跳出循環。最開始將該輸出ans的位置放在了for循環之外,此時的日期已經循環完了2024年所有的日期,則最后會統計多而導致結果錯誤。 AC代碼: #incl…

AI人工智能-Jupyter NotbookPycharm:Py開發

安裝 命令: pip install jupyter 啟動 命令: jupyter notebook 啟動成功后,下面網址會默認自動打開當前用戶的根目錄。 其實這個頁面顯示的內容,是我們電腦目錄C:\Users\當前用戶\下的文件夾 我們平常做實驗,希望在…

命懸生死線:當游戲遭遇DDoS圍剿,如何用AI破局?

文章作者:騰訊宙斯盾DDoS防護團隊 一、血色戰場:DDoS攻擊游戲產業的致命瞬間 全球黑色星期五 這是一場波及全球的“黑色星期五”,起初無人察覺,包括小林。 他剛下班到家就迫不及待打開電腦,準備體驗期待已久的《黑神話…

使用HTML5和CSS3實現3D旋轉相冊效果

使用HTML5和CSS3實現3D旋轉相冊效果 這里寫目錄標題 使用HTML5和CSS3實現3D旋轉相冊效果項目介紹技術棧核心功能實現思路1. HTML結構2. CSS樣式解析2.1 基礎樣式設置2.2 3D效果核心樣式2.3 卡片樣式 3. JavaScript交互實現3.1 旋轉控制3.2 自動播放功能 技術要點總結項目亮點總…