Как люди обычно подходят к "глобальным" данным в приложении React?
Например, скажем, у меня есть следующие данные для пользователя после входа в мое приложение.
user: {
email: '[email protected]',
name: 'John Doe'
}
Это данные, о которых может интересоваться практически любой компонент в моем приложении - так что он может либо отображаться в состоянии входа в систему или в автономном режиме, либо, возможно, отображать адрес электронной почты пользователей при входе в систему.
По моему мнению, способ React доступа к этим данным в дочернем компоненте предназначен для компонента верхнего уровня для владения данными и передачи его дочерним компонентам с использованием свойств, например:
<App>
<Page1/>
<Page2>
<Widget1/>
<Widget2 user={user}/>
</Page2>
</App>
Но для меня это кажется громоздким, так как это означало бы, что мне пришлось бы передавать данные через каждый композит, просто чтобы получить его к ребенку, который в нем нуждается.
Существует ли способ управления этим типом данных React?
Примечание. Этот пример очень упрощен. Мне нравится обмениваться идеями как композиты, поэтому детали реализации всех функций пользовательского интерфейса могут быть сильно изменены, как мне кажется.
EDIT: я знаю, что по умолчанию вызов setState
на моем компоненте верхнего уровня приведет к повторному отображению всех дочерних компонентов, и что в каждом дочернем компоненте я могу отображать, используя любые данные, которые мне нравятся (например, глобальные данные, а не только состояние или реквизит). Но как люди выбирают, чтобы уведомлять только определенные дочерние компоненты, которые они должны отображать?