前端知识点---路由模式-实例模式和单例模式(ts)
在 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 // 只创建一个实例
})
如果页面已经存在,则不会重新创建,而是直接返回已有页面。
总结