리액트 함수형 컴포넌트 정리

리액트 함수형 컴포넌트

함수형 컴포넌트 예시

import React, { useState, useEffect } from 'react';

const 컴포넌트명 = ({ props명1, props함수명1 }) => {
    const [ state명1, setState명1 ] = useState(초기값);
    const [ state명2, setState명2 ] = useState(초기값);
    
    // Hook 작성 위치

    return (
        // 렌더링 시 화면에 그려줄 JSX 리턴
    );
};

export default 컴포넌트명;

함수형 컴포넌트에서는 클래스 컴포넌트 생명주기 함수와 같은 기능을 useEffect 함수 등 Hook으로 구현할 수 있습니다.

리액트 함수형 컴포넌트 Hook 종류는 아래와 같습니다.

컴포넌트 첫 렌더링 후 실행되는 Hook

useEffect(() => {
    // 첫 렌더링 완료 시 처리
}, []);

클래스 컴포넌트의 componentDidMount 함수 역할과 같습니다.

컴포넌트 렌더링, 리렌더링 후 실행되는 Hook

useEffect(() => {
    // 렌더링 완료 시 처리
});

클래스 컴포넌트의 componentDidMount, componentDidUpdate 함수 역할과 같습니다.

값이 변경될 때 실행되는 Hook

const 컴포넌트명 = ({ props명1 }) => {
    const [ state명, setState명 ] = useState(초기값);
    
    useEffect(() => {
        // 받은 변수의 값이 변경된 후 렌더링 완료 시 처리
    }, [state명, props명1]);
};

컴포넌트 제거 전 실행되는 Hook

useEffect(() => {
    return () => {
        // 마운트 해제되어 화면에서 Dom이 제거되기 전 처리
    }
}, []);

값이 변경되어도 리렌더링 안하는 변수 저장 Hook

import { useRef } from 'react';

function 컴포넌트명() {
    const ref명 = useRef(초기값);
    ref명.current = 변경값;
    
    return (
        // 렌더링 시 화면에 그려줄 JSX 리턴
    )
}

export default 컴포넌트명;

Leave a comment