1. 리액트 동작원리
이해를 돕기 위해 가상 세계에서 공원에 놀러 간다고 생각해 보자.🤔
공원 안에는 여러 개의 놀이기구가 있고, 우리는 각각의 놀이기구에서 즐거운 시간을 보내고 싶어 한다.
하지만 매번 놀이기구에서 놀 때마다 전체 공원을 다시 만들지는 않잖아?
여기서 리액트는 놀이기구(컴포넌트)를 효율적으로 관리하고, 만약 어떤 컴포넌트에서 변경이 일어난다면
그 부분만 바꿔서 공원(웹 페이지)을 업데이트해준다. 이렇게 하면 놀이기구를 즐기면서도 전체 공원을
새로 만들 필요가 없어진다.(❁´◡`❁)
이번에는 코드를 통해서 리액트의 동작 원리를 예를 들어 설명해 보겠다.
가정해 보자. 우리는 간단한 웹 페이지에서 글을 보여주는 컴포넌트(`Post`)와
사진을 보여주는 컴포넌트(`Image`)를 가지고 있다고 상상해 보자.
// Post 컴포넌트
function Post(props) {
return <div>{props.content}</div>;
}
// Image 컴포넌트
function Image(props) {
return <img src={props.src} alt="이미지" />;
}
// 메인 앱 컴포넌트
function App() {
return (
<div>
<Post content="안녕하세요! 리액트 세계에 오신 걸 환영합니다." />
<Image src="사진주소" />
</div>
);
}
이제, 사용자가 글의 내용을 바꾸려고 한다고 생각해 보자. 그럴 때 리액트는 매우 효율적으로 동작한다.
1. 사용자가 글 내용을 변경하면, `Post`컴포넌트만 업데이트한다. `Image`컴포넌트는 변경되지 않는다.
2. 리액트는 바뀐 부분만을 실제 브라우저 DOM에 업데이트한다. 전체 페이지를 새로고침하지 않고도
변경된 내용만 업데이트되어 빠른 화면 전환이 가능하다.
3. 사용자가 다시 사진을 변경하려고 해도, `Image`컴포넌트만 업데이트된다. 다른 부분은 건드리지 않는다.
이렇게 리액트는 각 컴포넌트를 놀이기구처럼 독립적으로 다루면서 필요한 부분만 변경해 줘서
웹 페이지를 업데이트하는 것이다.
좀 더 깊게 다이브 해보자.
* React
데이터를 State(내부 상태) Props(외부로 부터 전달받은 상태)
나타내는 render가 있다.
상태가 변경될 때마다 re-render된다.
* React Hooks
리액트 훅은 함수 컴포넌트에서 상태 관리와 다양한 리액트 기능을
사용할 수 있게 해주는 기능이다. 이전에는 클래스 컴포넌트에서만
가능했던 상태 관리와 생명주기 관리를 함수 컴포넌트에서도 간편하게 할 수 있게 해 주는데...
클래스 컴포넌트가 또 무엇인가?🤔 (코드를 통해 간단하게 살펴보고 넘어가자...)
보기에도 함수 컴포넌트가 훨씬 간단하지 않은가?
`useState`훅을 사용하여 상태를 관리하고, 상태를 업데이트할 때는 `setCount`함수를 호출한다.
함수 컴포넌트에서도 상태와 이벤트 처리를 간편하게 다룰 수 있게 된 것이다. 🥹
다음에 리액트 훅을 좀 더 자세하게 공부해 보겠다.
'React' 카테고리의 다른 글
Params에 대해 설명해보시오. (1) | 2024.01.25 |
---|---|
JSX (1) | 2024.01.01 |
리액트 - 1 (0) | 2024.01.01 |
React ? (0) | 2024.01.01 |
useEffect로 라이프 사이클 제어하기 (0) | 2023.11.23 |