Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 提前退出的限制?_Vue.js_Vue Router - Fatal编程技术网

Vue.js 提前退出的限制?

Vue.js 提前退出的限制?,vue.js,vue-router,Vue.js,Vue Router,我正在将Vue.js与Vue路由器一起使用,对“BeforeRouteAve”导航卫士有一个问题。当用户单击“取消”按钮时,我使用它对ProductDetail组件中的产品对象进行脏检查(这样,如果有未保存的更改,我就可以弹出确认对话框)。只要用户单击Cancel按钮,它就可以正常工作,该按钮将路由更改为'/product/list'(从'/product/detail')。但是,如果用户直接在浏览器的地址栏中输入“/product/list”,则不会调用它。这是一个小麻烦,而不是一个显示停止,

我正在将Vue.js与Vue路由器一起使用,对“BeforeRouteAve”导航卫士有一个问题。当用户单击“取消”按钮时,我使用它对ProductDetail组件中的产品对象进行脏检查(这样,如果有未保存的更改,我就可以弹出确认对话框)。只要用户单击Cancel按钮,它就可以正常工作,该按钮将路由更改为'/product/list'(从'/product/detail')。但是,如果用户直接在浏览器的地址栏中输入“/product/list”,则不会调用它。这是一个小麻烦,而不是一个显示停止,但我只是想知道是否有一些方法,我可以绕过这一点,让它的行为一样,作为一个链接或按钮点击

应要求进一步澄清:
在所讨论的组件中,单击取消按钮调用
this.$router.push({name:'product-list'})
,它在路由器配置中定义,路径为“/product/list”。发生这种情况时,将在更改路由之前成功调用防护“BeforeRouteLave”。但是,如果用户直接在地址栏中输入“/product/list”并以这种方式更改路由,“BeforeRouteAve”将被绕过。

如果要防止在不保存更改的情况下离开链接,请尝试
窗口。onbeforeunload

window.onbeforeunload = function(){
  return "Are you sure you want to close the window?";
}

您能再解释一下这个问题吗?当用户直接访问
/product/list
时,数据不会呈现出来?这些数据是否依赖于其他数据?