037. React 입문 - State와 Props
개념
state
는 계속해서 바뀌는 값을 저장해두는 변수를 말하고, 각각 상태 변경 함수를 둘 수 있다.
그리고 리액트는 반복되는 UI는 컴포넌트로 분리해서 별도의 파일에서 작성이 가능하다. 그리고 <Card/>
이러한 형태로 메인 컴포넌트에서 import하여 사용 가능하다.
그런데 부모 컴포넌트의 state가 변경되면 부모 컴포넌트는 재 렌더링이 되면서 부모 컴포넌트에 정의된 모든 state를 다시 초기화 하는 현상이 발생한다.
// App.jsx
const [users, setUsers] = useState(['장원영', '안유진']);
const [count, setCount] = useState(0);
만약 위와 같이 App 컴포넌트에 state가 여러개 정의 되어 있을 때 이름만 보더라도 users
상태와 count
상태는 기능적으로 연관이 없어 보이나, 카운트를 위한 setCount
함수가 동작하여 count라는 상태의 값이 변경되고 재 렌더링이 발생하면 users
의 상태에도 재 렌더링이 발생하게 된다.
이는 불필요한 일이기 때문에 기능적으로 연관이 없는 state는 해당 state를 사용하는 자식 컴포넌트에 가서 정의 해주는 것이 좋다.
// App.jsx
// 아무런 state가 없음
function App () {
return (
<>
{/* 컴포넌트를 import해서 쓰기만 하면 됨. */}
<Card/>
<Count/>
</>
)
}
// User.jsx
const [users, setUsers] = useState(['장원영', '안유진']);
// Count.jsx
const [count, setCount] = useState(0);
'Programing > React' 카테고리의 다른 글
040. React 입문 - useRef로 컴포넌트의 변수 생성하기 (0) | 2024.05.22 |
---|---|
React.js에서의 이벤트 핸들러 (0) | 2024.05.22 |
008. [part1] 리액트 환경에서 동적인 UI 만드는 법 (모달창만들기) (1) | 2024.05.21 |
007. [코딩애플] [part1] Component 많은 div들을 한 단어로 줄이고 싶으면 (0) | 2024.05.21 |
006. [코딩애플] [part1] array, object state 변경하는 법 (0) | 2024.05.21 |
댓글