Как стать автором
Обновить

Комментарии 9

Да, Александр, вы сделали крутую библиотеку, я с ней знаком. Из моего примера можно спокойно выкинуть gRPC и System.Reactive и заменить их на Stl.Fusion, но основная идея статьи — переключение между Server и WebAssembly в runtime, без перезагрузки страницы (и WebAssembly уже загружен к моменту переключения), у вас же переключение модели размещения вызывает достаточно долгую перезагрузку страницы.
зачем такие сложности, а не создать VUE + web api
Естественно я ничего не имею против Vue, Angular, React, тем более сам их использую. А сложности нужны, чтобы писать Frontend и Backend на одном языке. В случае c# это даёт ряд преимуществ: статическую типизацию, общие DTO, общую валидацию, т.д., но главное — это скорость разработки, с Blazor я делаю ту же работу существенно быстрее.

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

Зачем используешь?

Интересная у Вас идея, о таком подходе мы даже и не думали.
Сейчас тоже экспериментируем с серверным пререндером. Очень растроились, что решение из коробки делает рендер, но далее заново идет инициализация всех компонентов из-за чего для нас полностью пропадает смысл данного подхода, т.к. у нас идут сразу запросы к api и появляется loader. Сейчас думаем в сторону сохранения json текущего состояния при рендере на сервере.
Спасибо за отзыв, это приятно.

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

Ну и еще надо посмотреть, как они в Microsoft реализуют hot reload, возможно получится использовать решение оттуда.
У нас немного необычный кейс, наверное, для текущих реалий blazor'a. Дело в том, что нам необходимо SEO и еще важна скорость рендера первой страницы. Рендер сервера выполняется шустро, тут все супер, далее 4-5 секунд на инициализацию нам не критичны. Сейчас добиваем механизм восстановления состояния (чтобы это было универсально без дополнительного кода), смотрится довольно перспективно. Лоадеры убирать не очень хочется, все-таки пользователь должен видеть, что что-то происходит.

Где-то на github в одном из обсуждений натыкался на сообщение, что они собираются решить проблему повторной инициализации компонентов в NET Core 6.0.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории