route-guards
路由守卫
一个简单而又不失优雅的uniapp路由守卫
介绍
在 uniapp
中模拟并实现对应 vue-router
的部分 Api 的功能
平台差异说明
App | H5 | 微信小程序 | 支付宝小程序 | 百度小程序 | 头条小程序 | QQ 小程序 | 360 小程序 |
---|---|---|---|---|---|---|---|
Android | √ | √ | √ | √ | √ | √ | √ |
如何安装
您可以使用 Yarn 或 npm 安装该软件包(选择一个)
yarn
yarn add uniapp-route-guards
npm
npm install uniapp-route-guards --save
插件注册
// main.js ;; Vue;
全局前置守卫
// main.js const guard = ; // 自定义路由拦截白名单const WHILE_LIST = '/src/pages/home' '/src/pages/log'; // 跳过路由白名单拦截guard; // 拦截 调用 uni.switchTab 页面C并跳转到 页面Dguard;
全局后置后卫
guard;
路由运行出时调用的守卫
// 注册 路由守卫出现异常回调的钩子guard;
如何跳转路由并触发注册的守卫
路由跳转的使用方法和 uniapp
路由跳转一样的
// 例如uni;uni;uni;uni;uni;
取消对某个路由方法进行拦截
例如调用某个路由方法时并取消路由拦截
uni; // 或uni;
解析运行流程
- 调用全局的
beforeEach
守卫 - 路由跳转
- 调用全局的
afterEach
守卫
暂时不支持的操作
1.在拦截器中访问 vm
// 例如:guard;
2.拦截原生的 tabbar
3.拦截原生的 navBar
的 back
Api
Event
参数名称 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
beforeEach | Function | - | false | 注册一个回调,在路由跳转之前运行 |
afterEach | Function | - | false | 注册一个回调,在路由跳转之后运行 |
onError | Function | - | false | 注册一个回调,该回调会在路由导航过程中出错时被调用 |