компонентов не связанных по дереву?
И если нет, то что вы исспользуете в проектах для обмена данными между не связанными компонентами?
Привет, как это не связанных по дереву? Т.е. ты пытаешьсч передать данные хоть он не находится под контекстом?
Зависит от задачи, ленивый вариант это effector/zustand но это прям лениво если не вдаваться в подробности
да. Я уже исспользовал для этого connect(mapStateToProps, mapDispatchToProps)(Компонент) в другом проекте, но хочу попробывать что то другое. Тем более мой предыдущий способ уже считается устаревшим насколько я знаю.
а что это, где глянуть?
Именно значение антипаттерна?
это то как делать не надо
А разве в древовидной структуре компоненты могут быть не связаны?
хедер, или футер не связан с основной страницы до топ уровня лойаут или апп
Что передается? При каких условиях передается? Нужно ли чтобы они реагировали на изменения друг у друга?
Контекст - хоть и странная штука в реакт, но она очень полезна для создания гибких компонентов с хорошей композицией (всякие формы и т.д.)
да, изменения конечно должны видеть и реагировать если нужно
Можешь поподробнее о задаче рассказать?
на данный момент задача абстрактная, но приведу какой нибуд рабочий пример: Например нужно юзеру внутри формы выбирать язык, данный выбор должен отражаться в хедере Структура компонентов: для хедера: аппликейшин - лойаут - хедер - првый угол - язык для формы: аппликейшин - лойаут - страница - табы - форма - выбор языка как их подржудить? тянуть связь с лойаута? у лойаута драгая задача
Не хранить это в рамках реакта, а использовать внешний реактивный примитив, короче говоря, какой-нибудь стейт менеджер
Тут лучше всего работает хранить состояние в url. Там хранится выбор языка пользователя и реакт меняет язык на все приложение
в этом и вопрос , что посоветуете в качестве стейт менеджера
А это от проекта зависит и команды. Ну, effector, reatom, mobx, главное не zustand - худшее, что видел.
Это не во всех случаях подходит, во многих приложениях, выбранный язык сохраняется в качестве отдельной настройки, привязанной к аккаунту.
да, поэтому уточняю задачу
я понимаю, это был как пример не связанных компонент, может быть что то более индивидуальное - не язык
Это я отвечал на то, что хранения в url - это не всегда лучшее решение
Обсуждают сегодня