我想在 vuejs 的 beforeDestroy(可能是更好的替代生命周期方法)中运行某些验证,并在验证失败时防止组件卸载。我能够运行验证,但我不知道如何防止组件卸载/销毁。
beforeDestroy(){
if(validationfails) {
return;
}
}
我遇到了同样的问题,我需要在退出特定页面之前关闭模式。因此,如果模式已打开,则只需将其关闭,否则即可恢复正常导航。这就是我处理流程的方法,希望对你也有帮助。
请记住,这适用于您想要阻止其导航或卸载的任何组件。
import { onBeforeRouteLeave } from 'vue-router';
onBeforeRouteLeave((to, from, next) => {
const wrapper = document.querySelector('.df-lightbox-wrapper');
const wrapperOpen = wrapper && wrapper.style.display !== 'none';
if (window.DFLIP && wrapperOpen) {
console.log('Closing DFlip book');
document.querySelector('.df-lightbox-close').click();
next(false);
return;
}
next();
});