我不是很多Web开发人员,但是我知道围绕.NET的方式。我决定尝试制作一个Web应用程序,但是我在如何处理呈现的内容方面有些挣扎。
示例是一个用于从系统中删除文件和文件夹的应用(请注意,您不应该从网络应用中删除文件和文件夹)
我有一个要加载为模式的组件。加载时提示您是否要删除该文件夹。您可以确认或取消。如果您确认它已完成删除文件夹的过程,并且内容更改为一条消息,提示“请稍等,请等待,完成”,然后消息更改为“嘿,完成了”。
这种情况导致我的组件看起来像
if(initialState)
{
ask for confirmation
}
else if(RemovingState)
{
please wait while this is completed
}
else if(CompletedState)
{
Hey its finished
}
这导致我的方法在开始时会出现尴尬的标志
StartRemoveMethod()
{
initialState = false;
RemovingState = true;
DoTheRemoval
}
使用它感觉很奇怪。我正在考虑添加其他检查,这意味着我必须引入一个新标志和另一个else if
部分。我只是想知道我是否完全丢失了某些东西,或者这基本上就是我应该做什么的想法?
答案 0 :(得分:2)
Blazor肯定有点思维转变,特别是如果您来自WinForms或类似的平台。当试图弄清楚如何将其分解为组件时,最终容易陷入分析瘫痪。对于您的特定示例,这似乎是一种完全合理的方法(尽管使用switch和enum方法会使其更加整洁)。
对于Blazor来说还处于初期,因此还没有很多真正详细的示例。 Blazor团队的Blazing Pizzas教程是一个非常不错的教程:https://github.com/dotnet-presentations/blazor-workshop/。这将引导您构建一个完整的系统,以及有关如何管理应用程序状态的一些非常有用的指导。
您可能还想看看一些介绍性的(Facebook)React文章,这些文章描述了构建组件和状态管理。与旧的WinForms范例相比,这些概念向Blazor的传递要好得多。值得一读有关Flux / Redux的概念,因为它们是解决基于组件的UI方法中出现的一些相当常见的状态问题的流行方法。