打印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时立即触发,用来更好地做全局路由中间件?
如果是用 Taro 写小程序的,推荐用这个路由库:http://lblblib.gitee.io/tarojs-router-next/guide
可以做埋点 哈哈
感谢~
因该是指包一下wx.navigateTo / wx.redirectTo / wx.switchTab。这样可以做。放globalData或者store里面也可以避免每个页面import。只是麻烦
要有像angular router guide的东西就好,刚开始摸小程序,感觉好多东西没有,难搞得很
如何写中间件? 能不能给个例子?
现在也是可以写中间件的,在跳转之前判断