问题模块 | 框架类型 | 问题类型 | API/组件名称 | 终端类型 | 微信版本 | 基础库版本 |
---|---|---|---|---|---|---|
API和组件 | 小程序 | 需求 | wx.onAppRoute | 客户端 | 7.0 | 2.7.0 |
打印wx对象的时候发现了原来小程序有一个全局路由回调api。试了一下觉得不错,真机上也可以用。
原来觉得可以用来做一个全局路由中间件(像vue router一样),如:
const protectedRoutes = [ 'pages/protected/1' , 'pages/protected/2' , 'pages/protected/3' ] if (!store.userLoggedIn() && protectedRoutes.find(r => route.path.includes(r))) { wx.redirectTo({ url: '/pages/register/register' }) }
|
但是,经测试发现这个回调触发太慢了,不适合用于授权页面。页面切换后大概有半秒可以看新页面的内容。
还是得在各处添加登录状态代码。
官方可不可以提供一个wx.beforeAppRoute回调,navigate / switchtap / redirect时立即触发,用来更好地做全局路由中间件?