是否可以在 vue.js 的 beforeDestroy 中进行验证并防止验证失败时组件卸载?

问题描述 投票:0回答:1

我想在 vuejs 的 beforeDestroy(可能是更好的替代生命周期方法)中运行某些验证,并在验证失败时防止组件卸载。我能够运行验证,但我不知道如何防止组件卸载/销毁。

beforeDestroy(){
  if(validationfails) {
    return;
  }
}
vue.js
1个回答
0
投票

我遇到了同样的问题,我需要在退出特定页面之前关闭模式。因此,如果模式已打开,则只需将其关闭,否则即可恢复正常导航。这就是我处理流程的方法,希望对你也有帮助。

请记住,这适用于您想要阻止其导航或卸载的任何组件。

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();

});

© www.soinside.com 2019 - 2024. All rights reserved.