Vue.jsにて、Androidのwebブラウザで「このサイトから離れますか?」のアラートの制御を行いました

ユーザーの意図的な操作、意図しない操作で挙動を振り分けたかったのです。

Vue.jsにて、Androidのwebブラウザで「このサイトから離れますか?」のアラートの制御を行いました

再読み込みなどの更新ボタンを押してしまった等、意図しない操作でページを離れるであろうと場合は「このサイトから離れますか?」的はアラートを表示。
ログアウトボタンなど、意図的にページを離れる時はアラートを表示させないというものです。

createdにて、addEventListenerにbeforeunloadを登録し、コールバックを呼び出す。

created() {
        //再読み込みで確認アラートが表示される
        window.addEventListener('beforeunload', this.refreshConfirm, false);
    },

反応するメソッドを用意しておく。

methods: {
    refreshConfirm(e){
        //一部のブラウザのみここのテキストが反映される。
        const confirmMessage = '本当にページ移動しますか?';
        e.returnValue = confirmMessage;
        return confirmMessage;
    },

    logout() {
        //意図的な操作ではアラートを表示させない。
        window.removeEventListener('beforeunload', this.refreshConfirm, false);
    },
    ・
    ・
    ・

調べてみると意外と簡単にできました。

【JavaScript】離脱時に beforeunload でアラート表示、だがカスタムメッセージが設定できない
というQiita記事を参考にさせていただきました(こちらです)

感謝!!