在 blazor Web-Assembly 中使用 href 上的导航管理器

mko*_*mko 3 blazor blazor-webassembly

在 Blazor Web-Assembly 中,是否有理由我应该使用 NavigationManager 而不是普通的 a href 链接结构?

例如

<a href="/test">Test</a>

<a @onclick="@LinkToTest">Test</a> or
<button @onclick="@LinkToTest">Test</button>

@code
{
void LinkToTest()
{
NavigationManager.NavigateTo("/test");
}
}
Run Code Online (Sandbox Code Playgroud)

应用程序的渲染或路由方式有区别吗?

小智 5

查看 的源代码NavigationManager.NavigateTo,它只是使用 JsInterop 调用内部 javascript 函数。查看 javascript 方面的源代码,基本上只是设置location.href. 所以我认为可以肯定地说,调用NavigateTo相当于仅使用普通的 href。

  • 比这更重要的是,“href”将强制重新加载完整的页面,而“NavigateTo”则保持应用程序上下文(变量等)完好无损,并且不会重新加载整个应用程序。 (2认同)