728x90
note) const { clientY } = event;와 같이 사용하면 event object 에서 clientY 만을 뽑아낼수 있다. (유용한 기법)
note) mouseleave event handler 등록과 해제를 아래 code 와 같이 useEffect 안에서 자체적으로 하고 있다 awesome codes.
useEffect(() => {
document.addEventListener("mouseleave", handle);
return () => document.removeEventListener("mouseleave", handle);
}, []);
note) 아래는 test 가 가능한 전체 code 이다.
import { useEffect } from "react";
export const useBeforeLeave = onBefore => {
if (typeof onBefore !== "function") {
return;
}
const handle = event => {
const { clientY } = event;
if (clientY <= 0) {
onBefore();
}
};
useEffect(() => {
document.addEventListener("mouseleave", handle);
return () => document.removeEventListener("mouseleave", handle);
}, []);
};
export default function App() {
const begForlife = () => console.log("Pls don't leave")
useBeforeLeave (begForlife)
return (
<div className="App">
<h1>Hello</h1>
</div>
);
}
note) 위는 아래의 교육과장을 이수하면서 정리한 것이다.
'Java Scripts > React.js' 카테고리의 다른 글
Hook in React - useScroll (0) | 2023.10.07 |
---|---|
Hook in React - useNetwork (0) | 2023.10.07 |
Hook in React - usePreventLeave (0) | 2023.10.07 |
Hook in React - useAxios (0) | 2023.09.28 |
Hook in React - useFullScreen (0) | 2023.09.28 |