컴포넌트(react)

UI를 독립적이고 재사용 가능한 단위로 쪼갠 것으로, React 애플리케이션을 구성하는 기본 단위입니다.

구조

App
├── Header
├── Main
│   ├── PostList
│   │   ├── PostItem
│   │   └── PostItem
│   └── Sidebar
└── Footer

함수형 컴포넌트

// 기본 구조
function UserCard({ name, age }) {       // props 받기
    const [likes, setLikes] = useState(0); // 상태 관리

    return (
        <div>
            <h2>{name} ({age})</h2>
            <button onClick={() => setLikes(likes + 1)}>
                좋아요 {likes}
            </button>
        </div>
    );
}

// 사용
<UserCard name="Alice" age={25} />

Props vs State

항목PropsState
정의부모 → 자식 전달 데이터컴포넌트 내부 데이터
변경불가 (읽기 전용)가능 (setState)
변경 주체부모 컴포넌트자기 자신
변경 시리렌더링 발생리렌더링 발생

생명주기 (useEffect)

function Component() {
    useEffect(() => {
        // 마운트 시 실행
        console.log("컴포넌트 생성");

        return () => {
            // 언마운트 시 실행
            console.log("컴포넌트 제거");
        };
    }, []); // [] = 마운트/언마운트 시에만 실행

    useEffect(() => {
        // count 변경 시마다 실행
        console.log("count 변경됨");
    }, [count]);
}

컴포넌트 설계 원칙

원칙설명
단일 책임컴포넌트 하나는 한 가지 역할만
재사용성Props로 다양한 상황에 대응
독립성다른 컴포넌트에 의존하지 않음

React는 단방향 데이터 흐름을 따릅니다. Props는 부모 → 자식으로만 전달되며, 자식이 부모 데이터를 바꾸려면 콜백 함수를 props로 전달합니다.

CSLOG에서 보기