본문 바로가기

Java Scripts/React.js

Hook in React - useBeforeLeave

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) 위는 아래의 교육과장을 이수하면서 정리한 것이다.

https://nomadcoders.co/react-hooks-introduction/lobby?utm_source=free_course&utm_campaign=react-hooks-introduction&utm_medium=site

'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