在学习小程序开发中,经常会用到类似tabbar一样的页面切换 开始没有区分navigatorTo和redirectTo的区别,导致页面跳转几次就会出点点击不了的情况。
其实问题出现在小程序页面栈的控制上,navigator 是跳转到新的页面 redirect是还在原来的页面跳转
小程序的所有页面路由全部由框架进行管理的
路由方式
对于路由的触发方式
初始化 小程序打开第一个页面
打开新的页面 调用API wx.navigator
使用组件 <navigator open-type="navigatorTo" /> (新页面入栈)
页面重定向 调用API wx.redirectTo
使用组件 <navigator open-type="redirectTo" />(当前页面出栈,新页面入栈)
页面返回 调用API wx.navigateBack
使用组件 <navigator open-type="navigateBack" /> (页面不断出栈,直到目标返回页)
Tab切换 调用API wx.switchTab
使用组件 <navigator open-type="switchTab" /> 用户切换Tab(全部出栈,只留下新的Tab页面)
1、navigateTo, redirectTo 只能打开非 tabBar 页面。
2、switchTab 只能打开 tabBar 页面。
3、reLaunch 可以打开任意页面。
4、页面底部的 tabBar 由页面决定,即只要是定义为 tabBar 的页面,底部都有 tabBar。
5、调用页面路由带的参数可以在目标页面的onLoad中获取。
网友评论