๐ด Introduction
โช ๋ง์ฐ์ค๊ฐ ๋ธ๋ผ์ฐ์ ์ฐฝ์ ๋ฐ๊นฅ์ผ๋ก ๋ฒ์ด๋ฌ์ ๋, ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ onLeave ํจ์๋ฅผ ์คํ์ํค๋ hook
๐ Hook

import { useEffect } from "react";
export const useBeforeLeave = (onLeave) => {
const handle = (event) => {
const { clientY } = event;
if (clientY <= 0) {
onLeave(); // ๋ง์ฐ์ค๊ฐ ์ฐฝ์ ์์ชฝ์ผ๋ก ๋ฒ์ด๋ฌ์ ๋
}
};
useEffect(() => {
if (typeof onLeave !== "function") {
return;
} else {
document.addEventListener("mouseleave", handle);
}
return () => document.removeEventListener("mouseleave", handle);
}, []);
};
๐ก Usage

import { useBeforeLeave } from "./hooks/useBeforeLeave";
function App() {
const begForLife = () => console.log("Please don't leave browser");
useBeforeLeave(begForLife);
return (
<div className="App">
<div>Hi</div>
</div>
);
}
export default App;
'React > Hook' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ Hook ] useScroll (0) | 2022.08.10 |
---|---|
[ Hook ] usePreventLeave (0) | 2022.08.10 |
[ Hook ] useNotification (0) | 2022.08.10 |
[ Hook ] useHover (0) | 2022.08.10 |
[ Hook ] useConfirm (0) | 2022.08.10 |