将"AfterNavigationObserver和NavigationTrigger"翻译为"AfterNavigationObserver和NavigationTrigger"。其解决方案是在Vue 3中使用钩子函数和ref来实现。使用"watchEffect"函数来监听路由变化,当路由变化时,将ref的值设置为true。使用after和before钩子函数来检测路由是否改变,并将其值设置为false。
import { ref, watchEffect, onBeforeMount, onUnmounted } from 'vue'
import { useRoute } from 'vue-router'
export default {
setup() {
const route = useRoute()
const isRouteChanging = ref(false)
onBeforeMount(() => {
watchEffect(() => {
if (route.fullPath && !isRouteChanging.value) {
isRouteChanging.value = true
}
})
})
onUnmounted(() => {
isRouteChanging.value = false
})
return {
isRouteChanging
}
}
}