背景
由于最近公司要求开发小程序,一直很感兴趣,也是趁着这次机会,边文档边开发,遇到一些好玩的东西,留此作为笔记
介绍
在开发小程序,构建路由时,因为需要权限判断,最常见的就是在路由跳转时判断用户是否有权限访问或使用该功能,而在官网找了很久也没有看到,诸如 vue-router 的 beforeEach 那样的路由拦截器,但是拦截是肯定需要的,所以自己写了一个
代码
直接上代码
拦截器
const appGlobalData = getApp().globalData;
/**
* routerFillter --全局路由拦截器
* @function
* @param{Object} pageObj 当前页面的page对象
* @param{Boolean} flag 是否开启权限判断
*/
exports.routerFillter = function (pageObj, flag = false) {
if (flag) {
let _onShow = pageObj.onShow
pageObj.onShow = function () {
let that = this
// 这一步是自己定义获取登录状态的,只是个判断权限的
appGlobalData.getSignPrms.then((res) => {
// 改回this指针
res.status && _onShow.call(that)
}, (err) => {
// 用户未登录,重定向个人页<