React/Hook
[ Hook ] useHover
Design-loving front-end engineer
2022. 8. 10. 10:50
๐ด Introduction
โช ์ปดํฌ๋ํธ์ Hover ์ด๋ฒคํธ ๋ฐ์์ ์ ๋ฌํ ํจ์๋ฅผ ์คํ์์ผ์ฃผ๋ Hook
๐ Hook

import { useEffect, useRef } from "react";
export const useHover = (onHover) => {
const element = useRef();
useEffect(() => {
if (typeof onHover !== "function") {
return;
}
if (element.current) {
element.current.addEventListener("mouseenter", onHover);
}
return () => {
if (element.current) {
element.current.removeEventListener("mouseenter", onHover);
}
};
}, []);
return element;
};
๐ก Usage

import { useHover } from "./hooks/useHover";
function App() {
const sayHello = () => console.log("say hello");
const title = useHover(sayHello);
return (
<div className="App">
<h1 ref={title}>Hi</h1>
</div>
);
}
export default App;