美文网首页
vue项目点击浏览器返回至前几个页面

vue项目点击浏览器返回至前几个页面

作者: 屎香味十足 | 来源:发表于2018-07-10 20:23 被阅读0次

需求场景1:用户注册三步需求:

在快付小店项目开发中,有这样一个需求:用户进入A页面(招商首页),点击注册按钮,进入B页面(注册第一步),第一步注册完后,点击下一步,把第一步注册信息上报给服务端保存,跳转到C页面(注册第二步),第二步注册完后,点击下一步,把第二步注册信息上报给服务端保存,跳转到D页面(注册第三步),这时候,用户发现忘记了第三步注册中的某一个信息,需要确定后才能注册,所以这时候需要放弃注册;此时产品需求是:点击浏览器返回,返回到用户一开始进入的A页面,而不是默认返回上一页(C页面)

需求场景2:tab切换:

两个tab页面进行切换,但是点击返回的时候,还是返回到初始进来的页面;

解决方案:

  • 思路 因为第一步、第二步的信息实则已经存储在了服务器,所以第三步返回的时候不需要再回到之前的页面;这个时候可以使用vue-router中另一种跳转路由的方法:router.replace(location, onComplete?, onAbort?) (跟 router.push 很像,唯一的不同就是,它不会向 history 添加新记录,而是跟它的方法名一样 —— 替换掉当前的 history 记录)

  • 代码:

/**
     * A页面跳转到B页面
     * */
goFirstRegisterPage(){
     this.$router.replace({name:"B"});
},
/**
     * B页面跳转到C页面
     * */
goSecondRegisterPage(){
     this.$router.replace({name:"C"});
},
/**
     * C页面跳转到D页面
     * */
goThridRegisterPage(){
     this.$router.replace({name:"D"});
},

当希望通过点击浏览器返回按钮,返回到自己随意的页面,这个时候需要使用beforeRouteLeave 这个路由生命周期函数中进行了;判断返回的页面如果是上一个页面,然后通过next() 做重定向

相关文章

网友评论

      本文标题:vue项目点击浏览器返回至前几个页面

      本文链接:https://www.haomeiwen.com/subject/ohbqpftx.html