У меня есть компонент Vue, который отслеживает, когда он «грязный» (например, несохраненный). Я хотел бы предупредить пользователя, прежде чем он откажется от текущей формы, если у него есть несохраненные данные. В типичном веб-приложении вы можете использовать onbeforeunload
. Я попытался использовать его в смонтированном виде так:
mounted: function(){
window.onbeforeunload = function() {
return self.form_dirty ? "If you leave this page you will lose your unsaved changes." : null;
}
}
Однако это не работает при использовании Vue Router. Это позволит вам перемещаться по тем ссылкам маршрутизатора, которые вы хотите. Как только вы попытаетесь закрыть окно или перейти к ссылке real , он предупредит вас.
Есть ли способ реплицировать onbeforeunload
в приложении Vue для обычных и маршрутизаторских ссылок?