需求: 在移动端或者pc端,如果在用户点击返回,或者在写评论或者什么的时候,如果用户点击返回,则需要弹框提示
解决方案:
在vue中,对于这个功能的实现是非常方便的,
1.可以使用watch来监听对应的路由的path: watch: "this.$router.path" 监听路由是否改变,然后弹框提示。
2.通过使用router的文档发现,在router的文档中有一个生命周期函数-----导航守卫可以很好的实现这个功能:
https://router.vuejs.org/zh/guide/advanced/navigation-guards.html#全局守卫
只需要在对应的模块或者全局注册这个导航守卫就可以了。
我使用到了自己的组件中:
beforeRouteLeave (to, from, next) {
// 导航守卫===》导航离开该组件的对应路由时调用
/* to:即将要进入的目标 路由对象
from: 当前导航正要离开的路由
next:执行的效果,next(false): 中断当前的导航 next({ path: '/' }): 跳转到一个不同的地址