当前位置: 首页 > news >正文

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

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

路由实例模式

  1. 标准实例模式(Standard Mode)
    每次跳转都会创建一个新的页面实例。
    适用于 允许用户打开多个相同页面的情况。
    不会复用已有的页面实例,每次跳转都会创建新的页面实例,用户返回时可以看到之前的页面状态。

  2. 单实例模式(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')
    }
  }
}

详细解析

  1. router.pushUrl()
    url: ‘pages/PageB’ → 指定跳转的目标页面。
    mode: RouterMode.Standard → 使用标准实例模式,每次跳转都会创建新的 PageB 实例。

  2. 什么时候使用标准实例模式?
    适用于需要创建多个相同页面实例的场景
    例如:新闻详情页,每次打开不同的新闻都会创建新的实例。
    例如:表单页面,每次填写新表单都会创建新的实例。
    单实例模式(仅创建一个页面实例)
    如果希望同一个页面只创建一个实例,可以使用 单实例模式:

router.pushUrl({
  url: 'pages/PageB',
  mode: RouterMode.Single  // 只创建一个实例
})

如果页面已经存在,则不会重新创建,而是直接返回已有页面。

总结
在这里插入图片描述

相关文章:

  • 【redis】全局命令set、get、keys
  • 【linux网络编程】浏览网页时客户端与服务器之间数据交互的完整过程
  • 根据输入汉字生成带拼音的米字格字帖
  • 对接RAGflow的API接口报错
  • Java本地缓存简单实现,支持SpEL表达式及主动、过期、定时删除
  • 解锁日常养生密码,拥抱健康生活
  • RabbitMQ学习笔记
  • 腾讯云大模型知识引擎LKE+DeepSeek结合工作流升级智能客服
  • Python模块的版本管理与文档编写
  • 初学者对爬虫的实例(抖音/b站)python篇
  • 实现一键不同环境迁移ES模板
  • 在IDEA中进行git回滚操作:Reset current branch to here‌或Reset HEAD
  • pyqt联合designer的运用和设置
  • 2025年全球生成式AI消费应用发展趋势报告
  • Lucas定理介绍及证明
  • 深入理解 Java 中的 CopyOnWrite 机制
  • 解决电脑问题(1)——硬件问题
  • manus本地部署使用体验
  • 「DataX」数据迁移-IDEA运行DataX方法总结
  • 实现插入排序
  • 地方门户网站推广/营销策略理论
  • 做国际黄金看什么网站/百度app安卓版下载
  • 西安企业招聘官网/网店seo名词解释
  • 漂亮的幼儿园网站模板/软文广告是什么意思
  • 顺德乐从有做阿里巴巴的网站吗/百度下载安装免费
  • 163网易免费邮箱登录/长沙网站seo排名