javascript - 在 Vue 中离开页面之前如何警告用户未保存的更改

标签 javascript vue.js vuex

我有一个 UnsavedChangesModal 作为组件,当用户在输入字段中有未保存的更改(我在页面中有三个输入字段)时试图离开页面时需要启动该组件。

components: {
    UnsavedChangesModal
},
mounted() {
    window.onbeforeunload = '';
},
methods: {
   alertChanges() {

   }
}

最佳答案

假设您使用的是 vue-router (你可能应该这样做),然后你会想要使用 beforeRouteLeave 守卫。 The documentation甚至给出了这种确切情况的例子:

beforeRouteLeave (to, from , next) {
  const answer = window.confirm('Do you really want to leave? you have unsaved changes!')
  if (answer) {
    next()
  } else {
    next(false)
  }
}

可以直接在您的组件上添加:

components: { ... },
mounted: { ... }
methods: { ... },
beforeRouteLeave (to, from, next) { ... }

关于javascript - 在 Vue 中离开页面之前如何警告用户未保存的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45293861/

相关文章:

javascript - 我想获取 md-autocomplete 的内部标记值,但我无法获取文本值,请在下面查找代码

javascript - 如何将0值赋给变量?

vue.js - vue router next() 函数在 router.beforeEach 中的 Promise 中不起作用

object - 如果 vue.js 2 上的对象为空,如何添加条件?

node.js - Vuex 和 Websocket

javascript - Vuex 不更新使用 mapState 映射的计算变量

javascript - d3 改变饼图的位置(中间点)

Javascript 在服务器上对 HTML 实体进行编码

javascript - 在 Angular 中使用 Vue 组件

vue.js - 从另一个模块提交突变