intermediate

Render props

Передавайте поведение рендеринга как функцию, когда потребителям нужен контроль над разметкой и использованием state.

Render prop — функция в props, часто `children` как функция, где родитель владеет state и логикой, а потребитель решает разметку. До hooks так делили поведение вроде отслеживания мыши или подписок на данные.

Hooks во многом заменили render props для переиспользования логики, но паттерн ещё встречается в библиотеках, когда нужен полный контроль вывода. Избегайте inline render-функций на горячих путях, если они ломают memoization.

					<MouseTracker render={({ x, y }) => <div style={{ left: x, top: y }} />} />
				

На интервью объясняйте концепцию на конкретном примере и называйте поведение, которое проверяют.

Типовые ошибки: скрывать поток данных, дробить компоненты чрезмерно и выполнять побочные эффекты в render.

Компромисс часто между ясностью и переиспользованием или между явными props и удобством.

Чеклист:

  • Родитель владеет state; функция-потомок — JSX.
  • Рассмотрите пользовательский hook как современную альтернативу.
  • Следите за ссылочной нестабильностью inline render-функций.