gpt4 book ai didi

vue.js - Router async beforeEach 触发两条路由

转载 作者:行者123 更新时间:2023-12-03 17:09:52 25 4
gpt4 key购买 nike

我正在尝试在我的路线守卫中等待异步响应。问题是两条路线都被击中了。
当页面加载时,/路线立即触发,然后是我的目标路线

router.beforeEach(async (to, from, next) => {
await new Promise(resolve => {
setTimeout(resolve, 500)
})
next()
})
或者
router.beforeEach((to, from, next) => {
setTimeout(next, 500)
})
})
在我的日志中,我在访问 /foo 时看到两个条目, 第一 /然后 /foo 500 毫秒后。我期待只看到后者:
setup(props, { root }) {
const hideNav = computed(() => {
console.log(root.$route.path)
return root.$route.meta?.hideNav
})

return {
hideNav
}
}
})
我正在使用 vue@2.6.12vue-router@3.4.9

最佳答案

我不确定,但这就是我在 Vue 组件中保护我的路线的方式,希望这对您有所帮助

 beforeRouteEnter(to, from, next) {
if (store.getters.isAuthenticated) {
Promise.all([
store.dispatch(FETCH_ARTICLE, to.params.slug),
store.dispatch(FETCH_COMMENTS, to.params.slug)
]).then(() => {
next();
});
} else {
Promise.all([store.dispatch(FETCH_ARTICLE, to.params.slug)]).then(() => {
next();
});
}
},

关于vue.js - Router async beforeEach 触发两条路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65348998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com