如何在 Blazor 中单击按钮时渲染组件?

Ami*_*adi 5 blazor blazor-server-side asp.net-blazor blazor-webassembly

我是 SPA 框架和 Blazor 的新手,因此这可能是一个很容易回答的问题,尽管我在其他地方找不到答案。

我想在用户单击特定按钮后立即在页面上的某个位置显示一个组件。我目前是这样实现的:

@page "/test"

<button type="button" @onclick="() => showSignUpComponent = true">
    Show Sign Up Window
</button>

@if (showSignUpComponent)
{
    <SignUp />
}

@code {
    bool showSignUpComponent;
} 
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更好、更干净的方法(即正确的方法)在 Blazor 中执行类似的操作,或者这是常见的“标准”方法?

Isa*_*aac 6

你所做的很好,我敢说,这是标准的做法!

如果您有不同的场景,您也可以采用稍微不同的方式来完成。例如,您可以定义一个字符串变量而不是布尔变量,并在其中存储一些相关信息等。

不过,无需纠缠于此。您所做的一切都很好,它表明您确实了解当触发 UI 事件(例如“单击”)时,组件将重新呈现,并且无需调用 StateHasChanged...