vue.js - 不允许在未保存的情况下退出表单屏幕

标签 vue.js vue-router

当用户想要离开已填写内容而不保存的表单时,如何向用户发出警报?

我已经尝试在 beforeDestroy 中实现一些内容,但我无法中止输出

我可以中止屏幕输出:

router.beforeEach((to, from, next) => {

  if(!store.getters.getStatusEdit){
    next(false);
  }

})

但是它不起作用,因为 beforeDestroy 内部运行的 vuex 在路由之后运行。

大家有什么建议吗?

最佳答案

内部组件使用:

beforeRouteLeave (to, from, next) {

        if(this.dados.name){

            if(confirm('confirm?')){

                next()

            }else{ next(false) };

        }else{
            next()
        }
    },

关于vue.js - 不允许在未保存的情况下退出表单屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54156025/

相关文章:

vue.js - 是否可以在不安装 Node.js 的情况下使用 vue-flash-message?

html - 在 Vue.JS 中为 div 生成 id

javascript - 在 Chrome 扩展中使用 VueRouter 和 Vue.js - 路径段问题

javascript - 有时,vue 路由器链接会刷新/重新加载页面。有时却没有

javascript - 图像未在嵌套路由vue js中加载

javascript - Vue-路由器数据获取: Fetch Data before 'beforeRouteUpdate' loads component

具有可选参数和任意顺序的 Vue.JS 路由

javascript - Vue.js:v-for 超过对象会导致键的顺序错误

javascript - Webpack - MiniCssExtractPlugin 不提取文件

javascript - 在拥抱服务器中进行 CORS 咨询后,Vue.js 返回未定义的数据