Router.push和location.assign之间的差异



在我的React应用程序中,我注意到当我从"import Router from"next/Router'使用Router.push('/')时,我要访问的页面的状态不会重新加载。

这意味着,当页面加载时,我已经想知道一些加载微调器的控制状态是不准确的,我最终会非常简短地看到这些微调器。

然而,如果我使用JS和location.assign('/'),页面会重新加载,一切都很好。

有人能告诉我2之间的区别吗?以及为什么Router.push不做同样的事情(或者如果有什么/一些选项我需要使用(?

Router.push不会故意重新加载页面,它应该是您的目标。不重新加载是单页应用程序的优点之一。

如果数据已经加载,则不需要再次显示微调器。

知道了这一点,您应该构建应用程序来利用这一点。

Location.assign是浏览器的内置方法。它没有应用程序的上下文,比如什么数据已经加载,什么数据没有加载。它无法重新加载页面并保留任何数据。

最新更新