리액트는 워낙 공식문서가 잘 되었다는 말을 많이들어서, 공부를 제대로 심도깊게 한다면 공식문서를 파해쳐봐야한다! 라는 이야기를 들었다.
요즘 프로젝트를 하면서, 점점 더 기초에대한 부족함을 많이 느껴 기초를 쌓고자 시작한 스터디이다!
3주간 공식문서를 다 끝장내기가 목표이다! 하루에 단 한챕터라도..! 미루지않는 습관을 기르자
심심하게 리액트를 뽀개보자......!
const element = <h1>Hello, world!</h1>;
엘리먼트는 화면에 표시할 내용을 기술한다.
브라우저 DOM 엘리먼트와 달리 React 엘리먼트는 일반 객체이며(plain object) 쉽게 생성할 수 있습니다. React DOM은 React 엘리먼트와 일치하도록 DOM을 업데이트합니다.
🙋🏻♀️ 브라우저 DOM ?
🙋🏻♀️ 일반 객체 ?
React 엘리먼트를 루트 DOM 노드에 렌더링하려면 둘 다 ReactDOM.render()로 전달하기
React DOM은 해당 엘리먼트와 그 자식 엘리먼트를 이전의 엘리먼트와 비교하고 DOM을 원하는 상태로 만드는데 필요한 경우에만 DOM을 업데이트한다.
컴포넌트를 통해 UI를 재사용 가능한 개별적인 여러 조각으로 나누고, 각 조각을 개별적으로 살펴볼 수 있다.
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
const element = <Welcome name="Sara" />;
ReactDOM.render(
element,
document.getElementById('root')
);
<Welcome name="Sara" />
엘리먼트로 ReactDOM.render()를 호출한다.
2. React는 {name: 'Sara'}
를 props
로 하여 Welcome 컴포넌트
를 호출한다.
3. Welcome 컴포넌트
는 결과적으로 <h1>Hello, Sara</h1>
엘리먼트를 반환한다.
4. React DOM은 <h1>Hello, Sara</h1>
엘리먼트와 일치하도록 DOM을 효율적으로 업데이트한다.
왜 추출 ??
React는 매우 유연하지만 한 가지 엄격한 규칙이 있다.
모든 React 컴포넌트는 자신의 props를 다룰 때 반드시 순수 함수처럼 동작해야 한다.
입력값을 바꾸려 하지 않고 항상 동일한 입력값에 대해 동일한 결과를 반환한다.
function sum(a, b) {
return a + b;
}
자신의 입력값을 변경!
function withdraw(account, amount) {
account.total -= amount;
}
reference
[sally의 프로그래밍 공부:티스토리]