useRef in React -🙏 Namaste React

0
useRef in React: Mastering DOM References and Mutable Values

useRef in React: Mastering DOM References and Mutable Values

React useRef Hook Example

What is useRef?

The useRef hook in React provides a way to reference DOM elements and store mutable values that persist between renders. This is particularly useful for actions that don’t require re-rendering the component, such as manipulating DOM elements or storing a value that needs to persist across renders without triggering a re-render.

By using useRef, you can directly access and manipulate DOM elements, such as focusing on an input element or triggering actions like file selection dialogs, without causing the component to re-render.

Why useRef?

The useRef hook is typically used for:

  • Accessing and interacting with DOM elements directly without causing a re-render.
  • Storing mutable values that persist between renders, such as keeping track of previous values in a function.
  • Triggering actions (like clicking a hidden input element) based on user interactions with other elements in the UI.

Practical Example: Triggering File Input with an Image

Let's see how useRef can be used to trigger a file input dialog when a user clicks on an image.

import React, { useRef } from 'react';

const ImageUpload = () => {
  // Create a ref to the file input element
  const ImageFileRef = useRef(null);

  // Handler to handle the image change
  const handleImageChange = (e) => {
    const file = e.target.files[0];
    if (file) {
      console.log("Selected image: ", file.name);
      // You can add more logic to display the selected image or upload it
    }
  };

  return (
    
{/* Hidden file input */} <input type="file" accept="image/*" onChange={handleImageChange} ref={ImageFileRef} className="hidden" /> {/* Image container to trigger the file input */} <div className="w-32 h-32 self-center cursor-pointer shadow-md overflow-hidden rounded-full" onClick={() => ImageFileRef.current.click()} > <img src="https://via.placeholder.com/150" alt="Click to upload image" className="object-cover w-full h-full" /> </div>
); }; export default ImageUpload;

In this example, we use useRef to reference the hidden file input element. When the user clicks the image, the file input is triggered, allowing them to select an image without directly interacting with the file input field.

Conclusion

The useRef hook in React is a versatile tool that allows you to reference DOM elements and persist mutable values across renders. It's especially useful for tasks like directly interacting with DOM elements without triggering a re-render, or storing values that don’t need to be part of the component state.

If any issue or feeback , you can reach me out here :

Post a Comment

0Comments
Post a Comment (0)
To Top