news 2026/4/23 19:14:56

Prism框架中`IConfirmNavigationRequest` 导航

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Prism框架中`IConfirmNavigationRequest` 导航

在Prism框架中,IConfirmNavigationRequest是导航相关的核心接口(继承自INavigationAware),以下这四个方法是Prism导航生命周期的关键回调,用于精细控制ViewModel的导航行为。下面逐一拆解每个方法的作用、触发时机和使用场景:

先明确接口继承关系

IConfirmNavigationRequest → INavigationAware(包含 IsNavigationTarget/OnNavigatedFrom/OnNavigatedTo)

也就是说:

  • INavigationAware是基础导航接口,定义了导航的“基础生命周期”;
  • IConfirmNavigationRequest是增强接口,额外提供“导航确认”能力(防止意外导航)。

1. IsNavigationTarget(NavigationContext navigationContext)

核心作用

判断当前ViewModel实例是否复用,用于“导航复用”控制(Prism默认会复用ViewModel实例)。

触发时机

当导航到已存在的目标视图/ViewModel时触发(比如从A页面再次导航到已打开的B页面)。

返回值含义

  • true:复用当前ViewModel实例(不创建新实例,仅触发OnNavigatedTo);
  • false:销毁当前实例,创建新的ViewModel实例。

典型场景

  • 列表页→详情页→返回列表页:希望列表页保持之前的筛选/滚动状态 → 返回true
  • 每次导航到页面都需要全新数据 → 返回false

示例代码

// 示例:每次导航都创建新实例(不复用)publicboolIsNavigationTarget(NavigationContextnavigationContext){returnfalse;}

2. OnNavigatedTo(NavigationContext navigationContext)

核心作用

导航进入当前页面/ViewModel时执行,是“页面加载后初始化数据”的核心方法。

触发时机

  • 首次导航到该ViewModel(新实例创建后);
  • 复用ViewModel时(IsNavigationTarget返回true);
  • 从其他页面返回当前页面时。

关键能力

通过navigationContext.Parameters获取导航参数(比如从上一页传递的ID、筛选条件)。

典型场景

  • 加载页面数据(如查询列表、初始化表单);
  • 接收上一页传递的参数;
  • 注册事件、启动定时器等。

示例代码

publicvoidOnNavigatedTo(NavigationContextnavigationContext){// 获取导航参数(比如从上一页传的PTId)if(navigationContext.Parameters.TryGetValue<int>("PTId",
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 13:44:31

AI编程教学:手把手搭建AI编程环境(IDE/插件/CLI方案)

2025年是新的AI元年&#xff0c;随着AI大模型和智能体技术的迅速发展&#xff0c;AI编程工具已形成多样化的生态系统。 如今&#xff0c;学编程不懂AI工具几乎等于吃饭没有筷子&#xff08;确信&#xff09;。 之前我们分享了AI编程工具cursor和国产的trae cn&#xff0c;更有…

作者头像 李华
网站建设 2026/4/23 8:36:53

养老院管理|基于springboot + vue养老院管理系统(源码+数据库+文档)

养老院管理 目录 基于springboot vue养老院管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于springboot vue养老院管理系统 一、前言 博主介绍&#xff1a…

作者头像 李华
网站建设 2026/4/23 2:23:15

计算机组成原理要点

计算机组成原理复习要点 课程摘要 本次复习主要围绕计算机组成原理的各个章节展开&#xff0c;包括存储系统、指令系统、中央处理器、输入输出系统等。其中&#xff0c;存储系统部分重点讲解了主存储器、外部存储器以及存储系统的性能指标&#xff1b;指令系统部分强调了指令格…

作者头像 李华
网站建设 2026/4/23 10:10:16

操作系统与数据结构核心知识点解析

操作系统与数据结构核心知识点解析 课程摘要 本文详细解析了操作系统和数据结构的核心知识点&#xff0c;包括操作系统的基本概念、内核与用户模式、中断异常、系统调用、引导过程&#xff0c;以及操作系统的目标和功能。同时&#xff0c;也深入讲解了进程与线程的引入、状态与…

作者头像 李华
网站建设 2026/4/23 10:11:13

Redis篇6——Redis深度剖析:从单机到集群,Redis高可用进化史

在前面的文章中&#xff0c;我们聊了 Redis 的持久化、锁机制以及热 Key 问题。今天&#xff0c;我们跳出具体的命令细节&#xff0c;从宏观架构的角度来看看 Redis 是如何一步步“做大做强”的。在生产环境中&#xff0c;我们几乎不会只部署一台 Redis。为什么&#xff1f;因为…

作者头像 李华
网站建设 2026/4/23 10:11:01

AI 时代,程序员的核心竞争力是什么?

从确定性到概率迷雾 Martin Fowler——《重构》的作者、敏捷宣言的起草人之一&#xff0c;对当前 AI 浪潮发出了警告&#xff1a;这不是工具升级&#xff0c;这是物种突变。我们正在从确定性的工业时代&#xff0c;跌进非确定性的概率迷雾。以前程序员是计算机世界的上帝&#…

作者头像 李华