跨端开发框架 Rax 中的路由跳转
Rax 是阿里内部应用最广泛的跨端开发引用框架,最近我也在学习使用 Rax 开发小程序,说实话这个东西相比 taro 和 uniapp 更难用,网上可查的资料也很少,所以你懂的。
这里记录一下 Rax 中如何做路由跳转,以小程序为例。
Link 标签(不推荐)
经常写 web 的同学可能对 Link 很熟悉,页面跳转经常会用得到,Rax 也提供了 link 标签来跳转路由,但是官方文档中写到不推荐使用 link, 建议 Web 场景使用 a 标签,小程序场景使用 navigator 标签
Rax 文档中对 Link 的描述如下:
Link 是基础的链接组件,同 a 标签。它带有默认样式 textDecoration: 'none'。 在浏览器中,同我们熟悉的 a 标签,使用 Link 标签并不能新开一个 webview ,它只是在当前的 webview 中做页面的跳转。
navigator 标签跳转
navigator 标签是各小程序平台原生提供的跳转方式,使用方法大致相同,具体使用方法参考各平台。
微信小程序:https://developers.weixin.qq.com/miniprogram/dev/component/navigator.html
支付宝小程序:https://opendocs.alipay.com/mini/component/navigator
navigate API 跳转
小程序在其生命周期会为所有浏览的页面保留一个页面栈,记录了你的浏览历史,以下 API 可能会改变你的页面栈,也就是改变你的浏览历史,对你的前进退操作会有影响。
navigate.go
路由前进与后退,前进只支持web,后退的话当前页出栈。
navigate.back
路由后退,当前页出栈
navigate.switchTab
切换 tab 页面,全部页面出栈,只保留最新的 tab 页,此方法会保留底部tabbar,使用其他方法跳转 tab 页不会保留底部的 tabbar.
navigate.repalce
当前页面出栈,打开新页面并入栈
navigate.push
打开新页面并入栈
navigate.relanch
全部页面出栈,打开新页面并入栈