H5的vue单页应用,该不该禁用浏览器的前进和后退?

用vue+vue-router+vuex做了一个三十多个页面的单页应用,路由模式是hash,如果使用浏览器的返回,也就是原路返回,在很多业务场景下是不允许的,比如一个流程是a>b>c>d,d是结果展示页,d按照业务逻辑应该返回去别的页面,但是显然用户点浏览器返回做不到,即时是之前的路由跳转是用replace,因为这个业务流程中间某些步骤是允许返回的。这样的项目是不是自己在每个页面顶部写一个导航栏放title和返回按钮,然后禁用浏览器返回自己控制自制的导航栏返回逻辑比较好,还是监听浏览器前进后退去执行相应逻辑?有没有大佬遇到过类似问题,有没有好的办法或者最佳实践呢?

:blush: 您尝试路由守卫了吗

导航守卫 | Vue Router

如果你有一个明确的某些路由跳转时是不用记录到栈的,那么可以使用redirect,虽然略嫌麻烦和笨拙,但是对于多个路由处理不会出现共同麻烦