# 强制触发守卫 V 2.0.0+
注意
forceGuardEach()函数支持两个参数,第一个参数 NAVTYPE 默认为replaceAll
、第二个参数为是否在执行守卫的同时开启跳转,默认为 false
。
# 什么是强制触发
在非api跳转时,调用插件api forceGuardEach
触发的过程就叫强制触发。强制触发适用于在任何时候
,任何地点
。每次调用 forceGuardEach
api都会重新按流程触发已经声明的所有守卫。
# 小程序端使用
在小程序端插件默认只对:插件api跳转
、uni导航api跳转
、首屏加载
做了导航守卫触发。有时我们在小程序端有热加载带参数访问时,默认的路由守卫就无效啦。那我们又想使用路由守卫,此时怎么办呢?
# (一)通过点击事件触发
// xxxx.vue
<template>
<view class="content">
<!-- #ifdef MP-WEIXIN -->
<button type="default" @click="forceEach">微信小程序看到我,强制触发</button>
<!-- #endif -->
</view>
</template>
<script>
export default {
methods: {
forceEach(){
this.$Router.forceGuardEach();
}
}
}
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# (二)通过混入onshow触发
Vue.mixin({
onShow(){
if(this._uid!=0){
router.forceGuardEach()
}
}
})
1
2
3
4
5
6
7
2
3
4
5
6
7
如果你是通过混入 onShow
的方式触发的,请注意传递的第二个参数,以避免死循环
!