React router.push 和 router.replace 有什么区别?
路由器历史记录的工作方式类似于
stack
的 routes
。当您使用 router.replace
时,您将覆盖堆栈的顶部。使用 router.push
时,它会在 stack
的顶部添加一条新路线。
路由器历史记录可以让您返回到上一页。例如,当用户导航到无效路线时,您可以使用
router.replace
来阻止用户导航回无效路线。
您在网络浏览器中访问的页面的历史记录就像一个
stack
数据结构。您可以 push
将新记录添加到历史堆栈的顶部,也可以 replace
顶部记录。如果您使用 push
,然后点击浏览器的后退按钮,它将带您返回当前所在的页面,但如果您使用 replace
,它将带您返回两页。
router.replace()
将阻止用户返回上一页。 router.back()
不会将用户定位到之前的位置router.push()
添加到历史堆栈,用户可以转到上一个位置