history中push/go/goBack/replace的区别

  • push — 向history栈里面添加一条新记录,这个时候用户点击浏览器的回退按钮可以回到之前的路径;

  • go — 这个方法的参数是一个整数,意思是在 history 记录中向前或者后退多少步,类似 window.history.go(n),n可为正数可为负数;

  • goBack — 返回上一页,相当于window.history.go(-1);

  • replace — 替换掉当前的 history 记录,跳转到指定的url,这个方法不会向history里面添加新的记录,点击返回,会跳转到上上一个页面。上一个记录是不存在的;

【注意】跳转时一定要注意区分使用场景。(本人已经跳过这个坑了,需要重点牢记)

在history中没有的记录,用push跳转,如果有即将跳转的页面这条记录了,就需要用go来返回到指定页面,不能再push,否则可能会导致返回事件不能按照我们预期的进行。
如果是要替换当前页面,那就用replace。

【扩展1】

window.location.reload(); // 刷新

window.history.go(1); // 前进

window.history.go(-1); // 后退

window.history.forward(); // 前进

window.history.back(); // 后退 + 刷新

【扩展2】
history.back 与 history.go的区别:

history.back(-1); // 直接返回当前页的上一页,数据全部消息,是个新页面

history.go(-1); // 也是返回当前页的上一页,不过表单里的数据全部还在

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享