Какие знаешь способы общения между компонентами

«Какие знаешь способы общения между компонентами» — вопрос из категории Паттерны, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В React есть несколько способов общения между компонентами:

  1. Props - передача данных от родителя к ребенку
<ChildComponent data={parentData} />
  1. Callback-функции - передача функций в props для общения ребенка с родителем
<ChildComponent onUpdate={handleUpdate} />
  1. Context API - глобальное состояние для вложенных компонентов
const ThemeContext = createContext();
<ThemeContext.Provider value="dark">
  <ChildComponent />
</ThemeContext.Provider>
  1. Сторы (Redux, MobX, Zustand) - управление состоянием приложения

  2. События (Event Emitter) - кастомные события через window.dispatchEvent

  3. Refs и методы - доступ к методам дочернего компонента через ref

const childRef = useRef();
childRef.current.someMethod();

Выбор зависит от сложности приложения и отношений между компонентами. Для простых случаев хватает props и callbacks, для сложных - Context или сторы.