티스토리 뷰

dev_공부일지/React

Lifecycle

dev_0hoon 2024. 2. 26. 22:14

 

컴포넌트의 Lifecycle

페이지에 장착되기도 하고(mount)

가끔 업데이트도 되고(update)

필요없으면 제거되고 (unmount)

 

위의 내용을 알면 중간중간 간섭이 가능하다. (코드실행)

 

예전 리액트 컴포넌트 문법은 이렇게 코딩이 가능했다.

class Detatil2 extends React.Component{
  componentDidMount(){
    //컴포넌트 mount시 여기 코드 실행됨
  }
  componentDidUpdate(){
    //컴포넌트 update시 여기 코드 실행됨
  }
  componentWillUnmount(){
    //컴포넌트 unmount시 여기 코드 실행됨
  }

}

 

요즘 문법으로는 useEffect를 제공한다. (mount, updatet 코드를 실행해준다.)

  useEffect(()=>{
    console.log('안녕');
  })

useEffect는 html이 랜더링 된 후에 실행된다.

- 그러므로 트래픽이 발생하는 작업이 있을 때에 사용한다.

- 서버에서 데이터 가져오는 작업

- 타이머 장착하는거

  //mount, update시 코드 실행해주는 useEffect
  //이곳에 적은 코드는 랜더링이 된 뒤에 작동한다.
  useEffect(()=>{
    for(var i = 0 ; i <10000; i++){
      console.log(1);
    }
  })

 

 

근데 왜 Effect인가? 무슨 뜻인가? (효과라는 뜻)

- side Effect : 함수의 핵심기능과 상관없는 부가기능 (곁다리 같은 기능들)

useEffect는 sideEffect를 보관하는 기능이다.

 

  useEffect(()=>{
    setTimeout(()=>{setAlert(false);},2000);
    console.log(1);
  },[count]); //count가 변경될 때 작동한다 //시작 될 때에도 작동한다. []로 표시하면 1번만 실행된다.
    useEffect(()=>{}) //재랜더링마다 코드 싱행하고 싶으면
    useEffect(()=>{},[]) //mount시 1회 코드실행 하고 싶으면
    useEffect(()=>{
      return ()=>{

      }
    },[]) // unmount시 1회 코드실행하고 싶으면

'dev_공부일지 > React' 카테고리의 다른 글

서버 데이터 요청 (ajax - axios)  (0) 2024.02.29
styled-component  (0) 2024.02.26
파라미터 받기  (0) 2024.02.26
리액트 페이지마다 url 나누기 +404만들기  (1) 2024.02.26
import,export  (0) 2024.02.23
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함