zoukankan      html  css  js  c++  java
  • 微信小程序路由跳转及页面栈学习

    一、wx.navigateTo跟uni.redirectTo方法跳转比较
     
     
    1、过程:A->(wx.navigateTo)->B-(wx.redirectTo)->C
    解析:
     
     
    A -> B通过 wx.navigateTo 跳转
     
    B -> C 通过 wx.redirectTo 跳转.跳转触发后 B 页面就会被销毁, C 页面再返回 wx.navigateBack 就会直接到 A 了
     
    2、过程:A ->(wx.navigateTo)-> B->(wx.navigateTo) -> C 返回效果C -> B -> A
     
    正常 A -> B -> C 都是通过 wx.navigateTo 跳转的,所以 wx.navigateBack 只能返回上一界面
     
     
     
     
    二、详细解析wx.navigateTo跟wx.navigateBack跳转页面栈关系
    1、过程:A-(navigateTo)->B-(navigateTo)->C
    解析:
    A-(navigateTo)->B 这个时候B页面的页面堆栈为[A,B]
    B-(navigateTo)->C 这个时候B页面的页面堆栈为[A,B,C]
    合起来:A-(navigateTo)->B-(navigateTo)->C 页面堆栈为[A,B,C]
     
     
    2、过程:C-(navigateBack)->B-(navigateBack)->A
    解析:
    C-(navigateBack)->B 这个时候B页面的页面堆栈为[A,B]
    B-(navigateTo)->A 这个时候B页面的页面堆栈为[A]
    合起来:C-(navigateBack)->B-(navigateBack)->A 页面堆栈为[A]
     
     
    三、总结
    1、wx.navigateTo 不会将旧页面出栈,会将新页面入栈。(栈内元素个数增加,栈内元素10个时,不能再跳转)
    2、wx.redirectTo 会将栈顶的旧页面出栈(跳转会销毁当前页面栈),再将需要跳转到的页面入栈(栈内元素个数不变);
    3、wx.navigateBack 则是将页面栈最后一个元素出栈,因此倒数第二个元素会成为最后一个元素,即变成当前页面;
    也可以连续出栈好几个元素(大于栈内元素的个数则返回首页)返回栈中的某个页面。
    4、wx.switchTab跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
    5、wx.reLaunch,关闭所有页面,打开到应用内的某个页面
    6、我们可以通过使用getCurrentPages()方法获取当前页面信息栈,从而进行学习总结运用
    提醒:我们在做项目的时候,巧妙运用路由跳转和页面栈会节省很多代码,用户体验也会得到相应的提升,所以,在开始项目之前,定好页面跳转规则相当重要。
  • 相关阅读:
    Openssl s_time命令
    Openssl speed命令
    Openssl s_client命令
    Openssl s_server命令
    Openssl smime命令
    关于静态与非静态之具体总结
    C++游戏系列2:角色装备武器
    POJ 2398 Toy Storage(计算几何)
    Oracle核心技术 笔记(该书读得不细致,须要找时间再细读~~)
    还在为开发APP发愁? 这里就有现成通用的代码!
  • 原文地址:https://www.cnblogs.com/qdlhj/p/15753958.html
Copyright © 2011-2022 走看看