Back to Blog
ReactRefsDOMPatterns

React Ref Patterns

Master refs in React. From DOM access to forwarding refs to imperative handles and ref callbacks.

B
Bootspring Team
Engineering
February 21, 2021
6 min read

Refs provide direct access to DOM elements and persist values across renders. Here's how to use them.

Basic useRef#

Loading code block...

forwardRef#

Loading code block...

useImperativeHandle#

Loading code block...

Ref Callbacks#

Loading code block...

Combining Multiple Refs#

Loading code block...

Ref with Intersection Observer#

Loading code block...

Previous Value Ref#

Loading code block...

Latest Value Ref#

Loading code block...

DOM Manipulation#

Loading code block...

Canvas Ref#

Loading code block...

Best Practices#

Usage: ✓ Use refs for DOM access ✓ Store mutable values that don't trigger renders ✓ Use forwardRef for reusable components ✓ Prefer controlled components when possible Patterns: ✓ useImperativeHandle for custom API ✓ Callback refs for measurement ✓ Merge refs when needed ✓ Keep refs stable Avoid: ✗ Overusing refs for state ✗ Directly mutating DOM in render ✗ Ignoring null checks ✗ Creating refs in loops without keys

Conclusion#

Refs enable direct DOM access and mutable value storage. Use forwardRef for component composition, useImperativeHandle for custom APIs, and callback refs for dynamic scenarios. Always handle null cases and prefer React's declarative patterns when possible.

Share this article

Help spread the word about Bootspring

Related articles