Я пытаюсь сделать приложение для telegram на vue js и сталкиваюсь с проблемой при использовании события beforeunload.
Когда я добавляю обработчик beforeunload в методе onMounted, он не срабатывает при первом запуске приложения. Однако после перезагрузки страницы событие начинает работать корректно.
const sendLogoutRequest = () => {
fetch("http://localhost:3000/lastauth", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
userId: userStore.user.userId,
authToken: userStore.authToken,
}),
}).catch((err) => {
console.error("Ошибка при отправке запроса:", err);
});
};
onMounted(async () => {
...
window.addEventListener("beforeunload", sendLogoutRequest);
})
onBeforeUnmount(() => {
window.removeEventListener("beforeunload", sendLogoutRequest);
})
API телеграма не предоставляет никаких подобных методов и ивентов. В чем может быть причина? В асинхронности монтирования главного компонента?