目標(biāo):取消在原頁(yè)面圆仔,確認(rèn)返回上一級(jí)
VUE3中代碼(可在需要攔截的vue文件中冰更,也可全局在app.vue中處理)
const onPopState = () => {
? openConfirmModal({
? ? title: '您還沒(méi)有保存更改瞄崇,確認(rèn)返回嗎?',
? ? confirm: () => {
? ? ? window.removeEventListener('popstate', onPopState)
? ? ? window.history.go(-1)
? ? }
? })
}
onMounted(() => {
? ? history.pushState(null, '', document.URL)
? ? window.addEventListener('popstate', onPopState, false)
})
onUnmounted(() => {
? // 在組件銷毀前纹因,移除 popstate 事件監(jiān)聽(tīng)
? window.removeEventListener('popstate', onPopState)
})
注:router的mode必須是hash