컴포넌트 경계 잡기
반복되는 UI 조각보다 데이터와 책임이 함께 움직이는 단위를 컴포넌트로 봅니다.
경계React를 컴포넌트 파일을 나누는 기술로만 보면 상태 흐름을 놓치기 쉽습니다. JSX는 UI를 표현하는 문법이고, 컴포넌트는 props를 입력으로 받아 화면을 계산하며, state는 바뀌는 값을 소유하는 위치를 드러냅니다.
반복되는 UI 조각보다 데이터와 책임이 함께 움직이는 단위를 컴포넌트로 봅니다.
경계JSX는 HTML 문자열이 아니라 React element를 만드는 표현식이므로 조건, 반복, 변수와 함께 다룹니다.
syntax부모가 결정하는 값은 props, 내부 상호작용으로 바뀌는 값은 state로 두어 데이터 흐름을 단방향으로 만듭니다.
데이터 흐름state가 바뀌면 컴포넌트가 다시 계산되므로 상태 위치가 넓으면 불필요한 렌더링이 늘어납니다.
renderfunction Counter({ step = 1 }) {
const [count, setCount] = useState(0);
return <button onClick={() => setCount(count + step)}>{count}</button>;
}