update
uni-simple-router 3.0 版本已发布,欢迎你的使用!

# 强制触发守卫 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

# (二)通过混入onshow触发




 




Vue.mixin({
	onShow(){
		if(this._uid!=0){
			router.forceGuardEach()
		}
	}
})
1
2
3
4
5
6
7

如果你是通过混入 onShow 的方式触发的,请注意传递的第二个参数,以避免死循环!