[React 영화 서비스 만들기] useEffect

2024. 7. 9. 12:34·React

useEffect 를 알아보기 이전에 rendering이라는 개념 먼저 잡고 가자

렌더링이란?

- 브라우저 렌더링 : html과 css리소스를 기반으로 웹페이지에 필요한 ui를 그려내는 과정

- 리액트 렌더링 : 브라우저가 렌더링에 필요한 DOM트리를 만드는 과정

 

여기서 DOM이란?

React element 들을 HTML body에 둘 수 있도록 하는 것을 말한다.

 

리액트 앱의 모든 컴포넌트들이 현재 자신들이 갖고 있는 props와 state의 값을 기반으로

어떻게 ui를 구성하고 이를 바탕으로 어떤 DOM 결과를 브라우저에 제공할지 계산하는 일련의 과정이다.

 

리액트 렌더링은 언제 일어나는가?

-최초 렌더링

-useState() 의 두번째 요소인 setter가 실행될 경우

-컴포넌트의 props가 변경되는 경우

-부모 컴포넌트가 렌더링 될 경우

.

.

.

(더 있지만 여기까지만 나머진 아래 참고)

 

참고

 

[React] 리액트 렌더링 과정

본 글은 도서의 내용을 바탕으로 작성되었습니다. 리액트 렌더링이란? 브라우저 렌더링: HTML과 CSS리소스를 기반으로 웹페이지에 필요한 UI를 그려내는 과정 리액트 렌더링: 브라우저가 렌더링에

s0ojin.tistory.com

 

만약 특정 기능을 한번만 렌더링 하고 싶다면 어떻게 해야할까?

이 때 필요한 것이 useEffect()의 기능이다.

  • 사용
 useEffect(() => {
    console.log('빈 배열이면 최초 실행');
  }, []);
  
   useEffect(() => {
    console.log('useStat변수인 keyword 값이 변화할때마다 실행');
  }, [keyword]);// 배열에 여러 값을 넣을 수도 있다.

 

import { useState, useEffect } from 'react';

function App() {
  const [counter, setCounter] = useState(0);
  const [keyword, setKeyword] = useState('');
  const onClick = () => setCounter((prev) => prev + 1);
  const onChange = (event) =>  setKeyword(event.target.value);
  useEffect(() => {
    console.log('최초 실행됨');
  },[]);
  useEffect(() => {
    if (keyword !== "" && keyword.length > 5) {
      console.log(keyword,'가 변화할 때 실행됨');
    }
  }, [keyword]);
  useEffect(() => {
    console.log(`${counter}가 변화할 때 실행됨`);
  }, [counter]);
  return (
    <div>
      <input
        onChange={onChange}
        value={keyword}
        type='text'
        placeholder='입력해주세요!'
      />
      <h1>{counter}</h1>
      <button onClick={onClick}>click</button>
    </div>
  );
}

export default App;

 

 

 

 

'React' 카테고리의 다른 글

[React 영화 서비스 만들기] 프로젝트 생성  (0) 2024.07.08
[React 영화 서비스 만들기] Prop Types  (0) 2024.07.08
[React 영화 서비스 만들기] Memo  (1) 2024.07.08
React | 포트 변경하기  (0) 2023.12.09
React | 프로젝트 시작하기  (0) 2023.12.09
'React' 카테고리의 다른 글
  • [React 영화 서비스 만들기] 프로젝트 생성
  • [React 영화 서비스 만들기] Prop Types
  • [React 영화 서비스 만들기] Memo
  • React | 포트 변경하기
개발 공부
개발 공부
  • 개발 공부
    개발 공부
    개발 공부
  • 전체
    오늘
    어제
    • 전체보기 (162)
      • 프로젝트 (1)
      • JavaScript (45)
      • Node.js (3)
      • Next.js (5)
      • React (17)
      • NoSQL (0)
      • HTML,CSS (3)
      • CS (6)
      • Java (35)
      • Spring (6)
        • Spring의 정석 (1)
      • Spring boot (1)
      • MySQL (1)
      • 리눅스 (16)
      • JSP (9)
      • AWS (0)
      • git (2)
      • 알고리즘 (1)
      • ect (7)
      • Project (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    오블완
    티스토리챌린지
    자바
    Java의 정석
    자바의 정석
    Java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
개발 공부
[React 영화 서비스 만들기] useEffect
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.