在Blazor WebAssembly中使用导航管理器而不是href

3
在Blazor WebAssembly中,使用 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");
}
}

应用程序呈现或路由有什么区别吗?


2
我所知道的唯一区别是,你可以使用 NavigateTo 强制重新加载。虽然不应经常使用此功能... - MrC aka Shaun Curtis
1个回答

5

浏览NavigationManager.NavigateTo源代码,它只是使用JsInterop调用了一个内部JavaScript函数。在JavaScript方面查看源代码,它基本上只是设置location.href。因此,我认为调用NavigateTo等同于使用普通的href。


2
不只是这样,href会强制完整页面重新加载,而NavigateTo保持应用程序上下文(变量等)完整,并且不重新加载整个应用程序。 - mxmissile

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接