Связь между компонентами может быть реализована тремя способами, в зависимости от ваших требований и потребностей.
Родительский компонент может взаимодействовать со своим дочерним компонентом, передавая параметры компонента и вызывая события, чтобы родитель, что что-то случилось, и наоборот.
Вы можете включить функцию CascadingValue для передачи значения всем дочерним элементам в потоке, которые определяют свойство CascadingParameter. Каскадное значение может быть простой строкой, но оно также может быть полным компонентом. Это достигается путем установки атрибута Value CascadingValue с ключевым словом this из компонента, для которого вы хотите передать ссылку, например:
SomeComponent.razor
<CascadingValue Value="this">
@ChildContent
</CascadingValue>
Мне не нравится использовать эту функцию. На самом деле, я никогда не использую это. Утверждается, что его использование может быть проблематичным c, et c. Тем не менее, это законная часть Blazor, и нет причин не использовать его, если хотите ...
Служба, которая реализует шаблон состояния и шаблон уведомления. Обычно вы создаете такой сервис для управления состоянием данных вашего приложения, в том числе для хранения данных в коллекциях, извлечения данных из базы данных и т. Д. c., Позволяя компонентам хранить данные в коллекциях сервисов, уведомляя компоненты путем вызова обработчика событий, и передавая им данные, только что добавленные другим компонентом, и т. д. c.
При наличии приложения Blazor «по умолчанию», созданного с использованием шаблона сервера Visual Studio 2019 Blazor. Как создать объект GLOBAL, доступный со всех страниц и компонентов бритвы.
Вам следует внедрить службу. См. Номер 3.
Создать класс c Класс?
Нет, нет классов c. Создать сервис
Каков рекомендуемый подход в Blazor?
Все зависит от ваших потребностей и требований ...
Как Вы бы сделали значение «Текущий счетчик» видимым и «динамически» обновленным на страницах MainLayout, NavMenu, Index?
Только путем создания службы, позволяющей передавать текущий счет из заданного местоположение и передать его другим компонентам, таким как MainLayout, NavMenu, страницы индекса.
Примечание: я подробно ответил на такие вопросы с рабочим кодом. Я не знаю, где они находятся (пока 400 ответов), но вы можете go перейти на страницу моего профиля и найти их.
Надеюсь, это поможет ...