news 2026/6/9 21:26:51

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/6/8 4:40:42

安装即是永久会员,请低调使用!

引言 经常玩机的小伙伴一定对虚拟机不陌生&#xff0c;因为虚拟机是一个完全隔离环境中的完整计算机系统&#xff0c;运用这样一个系统可以随意安装软件而不怕系统崩溃。 而虚拟机我们平常用得最多的是PC端的&#xff0c;比如VMware&#xff0c;手机端的我好像没介绍过&#x…

作者头像 李华
网站建设 2026/6/5 10:11:45

免费试用版,就挺牛X!

软件介绍 首先声明&#xff0c;这款软件有免费试用版还有高级版&#xff0c;大家用免费试用版就可以了&#xff0c;没必要用高级版&#xff0c;因为同类的软件也不少了&#xff01; 今天介绍的这款软件名字叫&#xff1a;Waifu2x-Extension-GUI&#xff0c;是一款可以无损放大…

作者头像 李华
网站建设 2026/6/9 18:51:46

300TypeScript基础知识

主要学习react中ts的使用和概念第一阶段&#xff1a;Ts基础 TypeScript 的核心思想是&#xff1a;给变量穿上约束的衣服。 1. 原始类型、数组、元组 let name: string "Gemini"; let age: number 25; let isAI: boolean true;// 数组的两种写法 let skills: strin…

作者头像 李华
网站建设 2026/6/9 9:35:52

军队文职资源合集

军队文职 文件大小: 11.4GB内容特色: 军队文职全套课程&#xff0c;11.4GB系统资料适用人群: 备考军队文职岗位的在职/应届生核心价值: 覆盖笔试面试&#xff0c;一站式提分上岸下载链接: https://pan.quark.cn/s/ebc6b2518f62 2026年军队文职押题&模拟卷 文件大小: 4.2…

作者头像 李华
网站建设 2026/6/7 23:06:28

九章算Adv. Mater.解读【水凝胶】中山大学附属第五医院/华南理工大学:按压密封水凝胶贴片,实现深度切口的快速止血与修复

【文章信息】通讯作者&#xff1a;中山大学附属第五医院彭欣副研究员、华南理工大学边黎明教授第一作者&#xff1a;中山大学附属第五医院2022级联培博士研究生袁康瑞共同第一作者&#xff1a;中山大学附属第五医院2023级硕士研究生何川东该成果得到了国家自然科学基金项目与中…

作者头像 李华
网站建设 2026/6/9 18:51:12

研究生该如何看文献?——带着三个层次的问题看文献

看文献的时候要带着问题看文献&#xff0c;不同阶段问题不一样。 第一层次问题&#xff0c;是什么&#xff1f; 刚入组的新生&#xff0c;包括研究生和本科生&#xff0c;刚开始接触一个研究方向&#xff0c;主要问题是弄清楚这个研究是什么&#xff1f; 包括这篇论文做了哪…

作者头像 李华