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