gpt4 book ai didi

c# - Blazor,如果加载则返回/停止渲染

转载 作者:行者123 更新时间:2023-12-02 02:12:12 25 4
gpt4 key购买 nike

我们在所有 Blazor 页面中都有与下面类似的代码,以简单地停止呈现直到加载完成。它似乎工作正常,但该网站还没有经过那么多测试。

我有点担心,这意味着页面中间的 return; 会/可能会以某种方式扰乱 blazors 流,导致内存泄漏或其他问题。

我看到的每个示例都改用 if/else,但如果下面的示例有效,则更倾向于减少页面的嵌套和复杂性。

那么,这个方法好用吗,还是会给我们带来问题呢?

一个简化的例子:

@usings/injects here

@if (IsLoading)
{
@:Loading content..
return;
}

<p>This will not be rendered until page is initialized and Model populated</p>
<p>@Foo.Bar</p>

@code {
public bool IsLoading { get; set; } = true;
public FooModel Foo { get; set;}

protected override async Task OnInitializedAsync()
{
try
{
Foo = await GetFooFromRepo();
}
catch (Exception ex)
{
Toaster.Add("Something went wrong when loading foo.",
MatToastType.Danger, "Error");
}
finally
{
IsLoading = false;
}
}
}

最佳答案

我不会使用这种方法,

我推荐的方法是使用 @if-else语句,如下所示:

@if (IsLoading)
{
@:Loading content..
}
else
{
<p>This will not be rendered until page is initialized and Model populated</p>
<p>@Foo.Bar</p>
}

关于c# - Blazor,如果加载则返回/停止渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67585533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com