Render props share code between components using a function prop. Here's how to use the pattern effectively.
Basic Render Props#
Data Fetching with Render Props#
Toggle Component#
Form Handling#
Scroll Position#
Window Size#
Render Props vs Hooks#
Best Practices#
Design:
✓ Use children as function when possible
✓ Provide TypeScript generics
✓ Keep render prop focused
✓ Consider hooks as alternative
Performance:
✓ Memoize render functions
✓ Avoid creating functions in render
✓ Use useCallback for handlers
✓ Extract static JSX
Naming:
✓ Use 'render' or 'children' for prop name
✓ Document expected function signature
✓ Return descriptive state objects
✓ Include helper functions in state
Conclusion#
Render props enable flexible code sharing between components. While hooks have replaced many render prop use cases, the pattern remains valuable for complex rendering logic and backwards compatibility. Use TypeScript for type safety and memoization for performance.