zoukankan      html  css  js  c++  java
  • Prism 源码解读7-导航

    介绍

    Prism提供了一个非常强大的功能导航,导航的意思就是指定对应的View显示。这个导航的强大之处有:

    • 可以设置导航前后的动作
    • 可以指定View实例的生命周期,可以是否导航到新的View实例
    • 提供了确认导航接口。

    • 导航前后均有相应的事件通知
    • 提供了回退前进的导航功能

    导航

    直接看代码

    1586101856797

    1586101868352

    可以看到直接通过RequstNavigate来请求,参数是View的TypeName

    1586101921254

    转到了Region.RequestNavigate里

    1586101954617

    这边出现了NavigationService,几乎所有的导航功能都是在这个服务中实现的,

    1586102614643

    1586101993357

    1586102012245

    这边将导航的一些信息封装成NavigationContext,

    1586102044383

    在这出现了第一个功能,实现ICon'firm'NavigationRequest接口,确认导航。

    最后来到了最重要的函数ExecuteNavigation

    1586102124583

    这个函数每一行都很重要,每一行都是一个功能。

    1586102153448

    调用OnNavigateFrom,可以在导航前做一些操作

    1586102182080

    获取导航内容,先从Region的View中找,没找到就到容器中找,然后添加到Region的View。

    1586102280441

    激活界面

    创建条目,保存条目,主要用来进行前进后退

    触发导航完成事件。

    整个导航功能的顺序:

    总结

    Prism提供的这个导航功能非常强大,但是代码却不复杂,通过一些简单的接口,实现了非常强大的功能。

  • 相关阅读:
    math.js:灵活强大的JavaScript数学库
    math.js:灵活强大的JavaScript数学库
    math.js:灵活强大的JavaScript数学库
    前端开发必须要了解的CSS原理
    前端开发必须要了解的CSS原理
    前端开发必须要了解的CSS原理
    GET和POST有什么区别?
    GET和POST有什么区别?
    GET和POST有什么区别?
    ACM2026
  • 原文地址:https://www.cnblogs.com/lovexinyi/p/12640108.html
Copyright © 2011-2022 走看看