React.js

[React.js] useEffect

mm_스터디 2024. 6. 16. 11:46
728x90

 

useEffect : 컴포넌트의 사이드 이펙트(파생효과)를 제어하는 Hook

 

훅의 다른 예시들은

 

https://mm-study-front.tistory.com/43

 

[React.js] React Hooks

클래스 컴포넌트의 기능을 함수 컴포넌트에서 사용할 수 있도록 도와주는 메서드 과거에는 클래스 컴포넌트만 모든 기능을 이용할 수 있었고, 함수 컴포넌트는 UI 랜더링만 가능했었음→  근

mm-study-front.tistory.com


리액트 내장 기능이니깐 import 필수

 

 

import { useEffect } from "react";

  useEffect ( () => {} , [])

 

 → []의 값이 바뀔 때마다  ()=>{} 콜백함수 실행

 

→ 이 때의 [] 배열을 의존성 배열이라 부름(deps), 배열이니깐 여러 개의 값 올 수 있음!

 

 

https://mm-study-front.tistory.com/44

 

[React.js] 간단한 실습 2. 인원수 카운트앱

지금까지 공부한 내용으로 결혼식장이나 행사에 참여하는 인원을 세는 카운트 앱을 만들려고 한다 아래 세 개 내용만 나올 듯https://mm-study-front.tistory.com/38 [React.js] State사물이 현재 가지고 있는

mm-study-front.tistory.com

여기의 코드로 예시를 들면 

 

App.jsx에

 

function App() {
  const [count, setCount] = useState(0);
  const [input, setInput] = useState("");
  useEffect(() => {
    console.log(count, input);
  }, [count, input]);

 

하면

 

내가 버튼을 누르거나, input 창에 글자를 입력할 때마다 상태값이 달라짐

 

 

그러면 useEffect말고 onClick 등 자바스크립트 함수 쓰면 되는 거 아닌가?

 

→ No!!!!

 

왜냐하면 리액트의 state는 비동기 처리여서 사이드 이펙트를 제어가 안됨  

 

→ 익숙하지 않지만 공부해서 useEffect로 사이드 이펙트 제어 하자

728x90