После того, как я немного поработал с Реакцией, я думаю, что мне в основном нравится, но есть несколько вещей, которые я пытаюсь понять, как это сделать. Одним из них является базовое общение между компонентами, которые не находятся в отношениях между родителем и ребенком.В React.js, как бы я установил простую глобальную систему событий для связи между компонентами?
Как я понял из учебника, большинство сообщений осуществляется через отношения родитель-потомок с использованием состояний и реквизитов, и это кажется достаточно простым. Но когда нет отношений между родителями и детьми, документы рекомендуют setting up a global event system и просто оставляйте это для меня, чтобы выяснить. Не совсем уверен, что это значит.
Возьмем, к примеру, проблему, над которой я работаю. У меня есть компонент <SearchBar />
в навигационной панели моей страницы, и я хотел бы использовать это, чтобы заполнить результаты поиска в компоненте <ResultsTab />
в другом месте на странице. Попытка связать их с помощью простого родителя просто непрактична. Итак, как я могу обновить ResultsTab с результатами SearchBar? Я уверен, что я мог бы просто сделать это через jQuery и забыть об React, но каков правильный способ React для этого?
Ну, в документах React указано, что вы можете использовать что-то вроде шаблона потока для достижения связи между компонентами. Есть куча реализаций Flux, которые вы можете использовать, и, похоже, она соответствует способу Реагента делать вещи. – Achrome
Вы также можете найти pubsub. –
Для данных (например, ваш пример) вы можете использовать флюс/магистраль. Для глобальных событий мы используем pubsub. – David