Bar*_*n23 10 javascript vue.js vuex
我有UnsavedChangesModal一个组件需要在用户在输入字段中有未保存的更改时尝试离开页面时启动(我在页面中有三个输入字段).
components: {
UnsavedChangesModal
},
mounted() {
window.onbeforeunload = '';
},
methods: {
alertChanges() {
}
}
Run Code Online (Sandbox Code Playgroud)
jps*_*der 23
假设你正在使用vue-router(你可能应该这样),那么你将需要使用beforeRouteLeave后卫.文档甚至给出了这种确切情况的一个例子:
beforeRouteLeave (to, from , next) {
const answer = window.confirm('Do you really want to leave? you have unsaved changes!')
if (answer) {
next()
} else {
next(false)
}
}
Run Code Online (Sandbox Code Playgroud)
这可以直接添加到您的组件上:
components: { ... },
mounted: { ... }
methods: { ... },
beforeRouteLeave (to, from, next) { ... }
Run Code Online (Sandbox Code Playgroud)
Dir*_*ble 13
这些答案仅涵盖 Vue 中的导航。如果用户刷新页面或导航到不同的站点,则不会被捕获。所以你还需要类似的东西:
window.onbeforeunload = () => (this.unsavedChanges ? true : null);
Run Code Online (Sandbox Code Playgroud)
小智 5
您正在使用vue-router吗?我会调查导航卫士。我牢记它们,但是我自己还没有使用它们。这是关于它们的文档:https : //router.vuejs.org/guide/advanced/navigation-guards.html
| 归档时间: |
|
| 查看次数: |
7797 次 |
| 最近记录: |