首页 > 其他分享 >vue3实现禁用物理按键返回,但是可以通过自定义app-bar的返回按钮返回

vue3实现禁用物理按键返回,但是可以通过自定义app-bar的返回按钮返回

时间:2023-01-30 15:22:42浏览次数:42  
标签:返回 bar 自定义 app disableBrowserBack null

1.注意app-bar是一个所有页面都会用到的顶部title栏,里面左侧有返回按钮;

2.基于1,在app-bar组件的setup里添加这个代码:

onMounted(() => {
      // 不能少
      history.pushState(null, null, document.URL);
      window.addEventListener('popstate', disableBrowserBack);
    });

    onUnmounted(() => {
      window.removeEventListener("popstate", disableBrowserBack, false);
    });

    function disableBrowserBack() {
      history.pushState(null, null, document.URL);
    }

    // 自定义back按钮触发
    function back() {
      if (props.isCustomBack) {
        context.emit('close');
      } else {
        // 移除disableBrowserBack这个监听器【因为每个页面的app-bar都是不同的实例都会onMounted一次,所以这里移除也没事】
        window.removeEventListener("popstate", disableBrowserBack, false);
        // 这里要返回两层(可能是history.pushState(null, null, document.URL);会算一层?)
        router.go(-2);
      }
    }

 

标签:返回,bar,自定义,app,disableBrowserBack,null
From: https://www.cnblogs.com/silentdoer/p/17076055.html

相关文章