- バックボタンの監視とpreventDefaultの使用
Vue Routerを使用している場合、beforeEachナビゲーションガードを設定することで、バックボタンの操作をキャンセルできます。以下にコード例を示します。
import { createRouter, createWebHistory } from 'vue-router';
const router = createRouter({
history: createWebHistory(),
routes: [...]
});
router.beforeEach((to, from, next) => {
if (from) {
// バックボタンが押された場合
// preventDefaultを呼び出してデフォルトの動作をキャンセル
window.addEventListener('popstate', (event) => {
event.preventDefault();
// 任意の処理を追加することもできます
});
}
next();
});
この例では、Vue RouterのbeforeEachガード内で、popstateイベントを監視し、バックボタンが押された場合にpreventDefaultを呼び出してデフォルトの動作をキャンセルしています。
- グローバルなイベントリスナーを使用したpreventDefaultの使用
Vue.jsのグローバルなイベントリスナーを使用することで、全体のアプリケーションでバックボタンの操作をキャンセルすることもできます。以下にコード例を示します。
const app = createApp(App);
app.config.globalProperties.$nextTick(() => {
window.addEventListener('popstate', (event) => {
event.preventDefault();
// 任意の処理を追加することもできます
});
});
app.mount('#app');
この例では、Vueアプリケーションの起動時にグローバルなイベントリスナーを設定し、popstateイベントを監視してpreventDefaultを呼び出しています。
以上の方法を使用することで、Vue.jsでバックボタンを制御し、preventDefaultを使用してデフォルトの動作をキャンセルすることができます。これにより、ユーザーが意図しない遷移やページのリロードを防ぐことができます。