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()方法获取当前页面信息栈,从而进行学习总结运用
    提醒:我们在做项目的时候,巧妙运用路由跳转和页面栈会节省很多代码,用户体验也会得到相应的提升,所以,在开始项目之前,定好页面跳转规则相当重要。
  • 相关阅读:
    对比度亮度调整及滑动条应用
    多项式求逆
    【转载】android手势翻页效果
    [Android实例] webview 实现翻页功能
    (转载)Android 平滑和立体翻页效果1
    android背景选择器selector用法
    WebView调用javaScript
    (转载自eoe论坛)Android上百实例源码分析以及开源分析集合打包
    android用户界面之WebView教程实例汇总
    WebView使用总结(应用函数与JS函数互相调用)
  • 原文地址:https://www.cnblogs.com/qdlhj/p/15753958.html
Copyright © 2011-2022 走看看