小程序路由

路由管理

在小程序中所有页面的路由全部由框架进行管理。框架以栈的形式维护了当前的所有页面
  • 栈(计算机术语)

    // 可进可出(进是添加,出是删除),也就意味着小程序中可以跳转新页面,可以后退,但是不可以前进
    
    栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素
  • 浏览器如何管理浏览记录

    浏览器以浏览新网页的形式将所有浏览记录都保留在历史记录,任何浏览都会保存,后退不会删除浏览器记录,也就意味着可以前进

    getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。在小程序中栈最多只能维护10个数据

  • 栈的表现

    打开新页面 进栈 后退 当前页面出栈 重定向 当前页面出栈新页面入栈 重加载 页面全部出栈保留当前页面入栈 Tab切换 页面全部出栈,只留下新的Tab页面

小程序中路由跳转(组件跳转,APi跳转)

跳转方式   |   Api   |   组件

打开新页面 | wx.navigateTo('路径') | <navigator open-type="navigateTo"/>

页面重定向 | wx.redirectTo | <navigator open-type="redirectTo"/>

页面返回 | wx.navigateBack | <navigator open-type="navigateBack">

Tab切换 | wx.switchTab | <navigator open-type="switchTab"/>

重启动 | wx.reLaunch | <navigator open-type="reLaunch"/>

注意

  • navigateTo, redirectTo 只能打开非 tabBar 页面。
  • switchTab 只能打开 tabBar 页面。
  • reLaunch 可以打开任意页面。
  • 页面底部的 tabBar 由页面决定,即只要是定义为 tabBar 的页面,底部都有 tabBar。
  • 调用页面路由带的参数可以在目标页面的onLoad中获取。
  • 页面只有在出栈后才会被卸载也就是执行onUnload,tab页面只有在卸载的时候执行
原文地址:https://www.cnblogs.com/2oex/p/9564877.html