在 ArkTS(Ark UI 框架)中,路由實例模式(Standard Instance Mode)主要用于管理頁面跳轉。當創建一個新頁面時,可以選擇標準實例模式(Standard Mode)或單實例模式(Single Mode)。
路由實例模式
-
標準實例模式(Standard Mode)
每次跳轉都會創建一個新的頁面實例。
適用于 允許用戶打開多個相同頁面的情況。
不會復用已有的頁面實例,每次跳轉都會創建新的頁面實例,用戶返回時可以看到之前的頁面狀態。 -
單實例模式(Singleton Mode)
相同的頁面始終只有一個實例,不會創建多個副本。
適用于 同一個頁面不需要重復創建的情況,比如 設置頁面。
如何在 ArkTS 中創建一個新頁面(標準實例模式)
使用 router.pushUrl() 進行頁面跳轉時,默認采用 標準實例模式。
示例:創建并跳轉到新頁面
步驟 1:創建 PageA 頁面
@Entry
@Component
struct PageA {build() {Column() {Text('這是 PageA')Button('跳轉到 PageB').onClick(() => {router.pushUrl({url: 'pages/PageB', // 指定要跳轉的頁面路徑mode: RouterMode.Standard // 使用標準實例模式})})}}
}
步驟 2:創建 PageB 頁面
@Entry
@Component
struct PageB {build() {Column() {Text('這是 PageB')}}
}
詳細解析
-
router.pushUrl()
url: ‘pages/PageB’ → 指定跳轉的目標頁面。
mode: RouterMode.Standard → 使用標準實例模式,每次跳轉都會創建新的 PageB 實例。 -
什么時候使用標準實例模式?
適用于需要創建多個相同頁面實例的場景
例如:新聞詳情頁,每次打開不同的新聞都會創建新的實例。
例如:表單頁面,每次填寫新表單都會創建新的實例。
單實例模式(僅創建一個頁面實例)
如果希望同一個頁面只創建一個實例,可以使用 單實例模式:
router.pushUrl({url: 'pages/PageB',mode: RouterMode.Single // 只創建一個實例
})
如果頁面已經存在,則不會重新創建,而是直接返回已有頁面。
總結