Каков наилучший способ отображения условного содержимого в компонентах Blazor? - PullRequest
2 голосов
/ 02 апреля 2020

Я не большой веб-разработчик, но я знаю, как это сделать. NET. Я решил попробовать сделать веб-приложение, и я немного борюсь с тем, как обрабатывать визуализированный контент.

Пример - это приложение для удаления файлов и папок из системы (не ограничиваясь тем, что Вы не должны делать это из веб-приложения)

У меня есть компонент, который я загружаю в модальное. Когда он загружается, он спрашивает, хотите ли вы удалить папку. Вы можете подтвердить или отменить. если вы подтвердите, что он проходит через процесс удаления папок, и содержимое меняется на сообщение «Пожалуйста, подождите, пока это будет завершено», а после завершения сообщение изменится на «Привет, оно закончено».

Этот сценарий в результате мой компонент выглядит как

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. Мне просто интересно, я что-то упускаю полностью или это в основном идея того, что я должен делать?

1 Ответ

2 голосов
/ 02 апреля 2020

Blazor определенно немного меняет сознание, особенно если вы используете WinForms или тому подобное. Довольно легко закончить с параличом анализа, пытаясь понять, как разбить вещи на компоненты. Что касается вашего указанного c примера, то это вполне разумный способ для go (хотя подход с switch и enum немного его исправит).

Для Blazor все еще довольно рано, так что пока не очень много подробных примеров. Один действительно хороший пример - учебник Blazing Pizzas команды Blazor: https://github.com/dotnet-presentations/blazor-workshop/. Это поможет вам создать полную систему вместе с некоторыми действительно полезными рекомендациями по управлению состоянием приложения.

Возможно, вы захотите взглянуть на некоторые вводные (Facebook) статьи React, которые описывают создание компонентов и государственное управление. Концепции гораздо лучше передаются в Blazor, чем старые парадигмы WinForms. Также стоит немного прочесть о концепциях Flux / Redux, поскольку они являются популярными способами решения некоторых довольно общих проблем состояния, возникающих в компонентных подходах к пользовательскому интерфейсу.

...