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