问题,部是弹不出来,加了debugger后可以正常,最后才发现原来是时间差问题,弹出显示本身需要时间,
onBeforeRouteLeave(async (to, from, next) => {
if( data.leavePath ){
next()
}else{
const timer = setTimeout(() => {
saveDig.value = true; //显示弹窗
data.leavePath = to.path //保存要路转的路径
clearTimeout(timer); //计时器只需要1次
next(false)
}, 500)
}
})
这里的时间不能少于500
如果路转前有轻提示,提示时间需要2S,要不这个提示会在to后的页面显示
await new Promise(resolve => setTimeout(resolve, 2000));