2023-10-24
3068
#react
Jeremias Menichelli
12592
Oct 24, 2023 â‹… 10 min read

A complete guide to React refs

Jeremias Menichelli Curious mind, writer, and developer.

Recent posts:

How To Build Cross-Platform Mobile Applications Using Lynx.js

How to build cross-platform mobile applications using Lynx.js

Use Lynx.js to build cross-platform web and mobile apps, addressing layout, navigation, and performance challenges for consistent UX.

Andrew Baisden
Apr 15, 2025 â‹… 16 min read
PDF report workflow

Struggling with your PDF report workflow? Try this

Streamline your PDF report workflow using React and .NET. Walk through a real-world example and discover cloud-based alternatives.

Andrew Evans
Apr 14, 2025 â‹… 8 min read
a guide to the MUI Grid system

A guide to the MUI grid system

Explore the MUI Grid system in depth, including updates from MUI v5, and learn how to build responsive grid layouts.

Gaurav Singhal
Apr 11, 2025 â‹… 8 min read
Building Progressive Web Apps (PWAs) Using Rust

Building progressive web apps using Rust

Build a progressive web app using Rust, WebAssembly, SurrealDB, and Nostr with local encryption and fast storage.

Mario Zupan
Apr 11, 2025 â‹… 18 min read
View all posts

11 Replies to "A complete guide to React refs"

  1. Thanks for this article, Jeremias. I use `useRef` and `createRef` extensively with my React code, which is entirely function, not class based, and extensively using Hooks. I’ve examined some `forwardRef` code and found it insanely complex and confusing so just used `window.###` functions instead.

  2. Little typo in the last sample, should be

    export default React.forwardRef(LabelledInput)

  3. The section about memory leaks seems a bit strange to me. Do you have sources that support your claim or explain why elements won’t be garbage collected when the component unmounts?
    If the component unmounts, it will be garbage collected eventually and subsequently any object that was referenced by the component (given there is no other reference to that element outside the component).

    More generally, I would assume that anything I put in a ref (and don’t reference anywhere else) will be garbage collected after the component un-mounts and is itself garbage collected.

Leave a Reply