前端知识点---路由模式-实例模式和单例模式(ts)

[复制链接]
发表于 2025-10-18 08:30:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在 ArkTS(Ark UI 框架)中,路由实例模式(Standard Instance Mode)重要用于管理页面跳转。当创建一个新页面时,可以选择尺度实例模式(Standard Mode)或单实例模式(Single Mode)。
路由实例模式

  • 尺度实例模式(Standard Mode)
    每次跳转都会创建一个新的页面实例。
    实用于 允许用户打开多个类似页面的情况。
    不会复用已有的页面实例,每次跳转都会创建新的页面实例,用户返回时可以看到之前的页面状态。
  • 单实例模式(Singleton Mode)
    类似的页面始终只有一个实例,不会创建多个副本。
    实用于 同一个页面不须要重复创建的情况,好比 设置页面。
    如安在 ArkTS 中创建一个新页面(尺度实例模式)
    利用 router.pushUrl() 举行页面跳转时,默认采取 尺度实例模式。
示例:创建并跳转到新页面
步调 1:创建 PageA 页面
  1. @Entry
  2. @Component
  3. struct PageA {
  4.   build() {
  5.     Column() {
  6.       Text('这是 PageA')
  7.       Button('跳转到 PageB')
  8.         .onClick(() => {
  9.           router.pushUrl({
  10.             url: 'pages/PageB',  // 指定要跳转的页面路径
  11.             mode: RouterMode.Standard  // 使用标准实例模式
  12.           })
  13.         })
  14.     }
  15.   }
  16. }
复制代码
步调 2:创建 PageB 页面
  1. @Entry
  2. @Component
  3. struct PageB {
  4.   build() {
  5.     Column() {
  6.       Text('这是 PageB')
  7.     }
  8.   }
  9. }
复制代码
详细分析

  • router.pushUrl()
    url: ‘pages/PageB’ → 指定跳转的目标页面。
    mode: RouterMode.Standard → 利用尺度实例模式,每次跳转都会创建新的 PageB 实例。
  • 什么时间利用尺度实例模式?
    实用于须要创建多个类似页面实例的场景
    比方:消息详情页,每次打开差异的消息都会创建新的实例。
    比方:表单页面,每次填写新表单都会创建新的实例。
    单实例模式(仅创建一个页面实例)
    假如渴望同一个页面只创建一个实例,可以利用 单实例模式:
  1. router.pushUrl({
  2.   url: 'pages/PageB',
  3.   mode: RouterMode.Single  // 只创建一个实例
  4. })
复制代码
假如页面已经存在,则不会重新创建,而是直接返回已有页面。
总结

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表