React Custom Hooks (useRefs)
sundarbadagala
Posted on May 1, 2024
INTRO π
Hello World! π
Today we are discussing another custom hookπͺ is useRefs
π₯. It is an extension of useRef
π₯. Now we will see the code and how to use it.
USAGE π
As a React
developerπ§π»βπ» , we all know what useRefπ₯ hook is. useRef
π₯ helps to access the DOM elements. One useRef
π₯ will help to access one element but sometimes we need to access more than one element π€. That time we need to create multiple uesRef
π₯ hooks. To avoid this problem we are creating a useRefs
π₯ custom hook.
Noteπ :- As discussed earlier hook useLocalπ. This is not a hook, it is the helper. But for our convenience, we are calling it a hookπͺ.
CODE π
export const useRefs = () => {
const refs = [];
return [refs, (el) => el && refs.push(el)];
};
USE CASE π
TRADITIONAL MULTIPLE useRef
HOOKS π―οΈ
import React, { useEffect, useRef } from "react";
function App() {
const headerRef = useRef(null);
const inputRef = useRef(null);
const btnRef = useRef(null);
useEffect(() => {
console.log("header", headerRef.current.innerText);
console.log("input", inputRef.current.defaultValue);
console.log("button", btnRef.current.offsetWidth);
}, []);
return (
<>
<main>
<div id="header" ref={headerRef}>Header</div>
<input type="text" defaultValue={'hello world'} ref={inputRef}/>
<button id="click" ref={btnRef}>Click Here</button>
</main>
</>
);
}
export default App;
USING useRefs
HOOK π‘
import React, { useEffect } from "react";
import { useRefs } from "./useRefs";
function App() {
const [refs, handleRef] = useRefs();
useEffect(() => {
console.log("header", refs[0].innerText);
console.log("input", refs[1].defaultValue);
console.log("button", refs[2].offsetWidth);
}, []);
return (
<>
<main>
<div id="header" ref={handleRef}>Header</div>
<input type="text" defaultValue={"hello world"} ref={handleRef} />
<button id="click" ref={handleRef}>Click Here</button>
</main>
</>
);
}
export default App;
It also gives the same output as using multiple useRef
hooks.
Please practice in your Code Editor, you will get full clarity on this hook.
CONCLUSION π
I hope this hook is helpful. We will meet with another hook in another post.
Peace π
Posted on May 1, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.