본문 바로가기

react

[react] useClick

useEffect를 사용해서 element의 current가 존재할 때 클릭 이벤트리스너를 추가해주고 - componentDidMount

함수가 실행되고 난 뒤 리무브이벤트리스너를 리턴해서 지워준다. - componentWillUnmount

ref를 통해 엘리먼트를 사용할 수 있음

 

title을 클릭할 때마다 콘솔에 sayHello가 찍힌다. - componentDidUpdate

import "./styles.css";
import { useEffect, useRef } from "react";
import React from "react";

function App() {

  const useClick = (onClick) => {
    const element = useRef();
    useEffect(() => {
      if(element.current){
        element.current.addEventListener("click", onClick);
      }
      return () => {
        element.current.removeEventListener("click", onClick);
      }
    },[]);
    return element;
  }
  const sayHello = () => console.log("sat Hello!");
  const title = useClick(sayHello);
  return (
    <div className="App">
      <h1 ref={title}>H2</h1>
    </div>
  );
}

export default App;

'react' 카테고리의 다른 글

[react] useState 사용해서 input 입력값 로컬스토리지에 저장하기 (debounce)  (0) 2022.12.11
[react] useConfirm  (0) 2022.12.11
[react] useTabs  (0) 2022.12.10
[react] useInput  (0) 2022.12.09
[react] useRef()  (0) 2022.12.07