아래의 내용은 SOPT 28기 웹파트 3차 세미나를 기반으로 정리한 내용이다.
리액트 공식문서도 참조하여 정리하였다.
- 컴포넌트 내부에서 설정되는 데이터
- 컴포넌트 내에서 값을 바꿀 수 있음
- 부모 컴포넌트에서 자식 컴포넌트로 넘겨주는 데이터
- 넘겨줄때는 자식변수명={부모변수명}
- State는 동적데이터를 다루는 방식으로서, useState는 Hook를 통해서 사용함
- 함수 컴포넌트에서 React state와 생명주기 기능(lifecycle features)을 “연동(hook into)“할 수 있게 해줌
- 즉, state를 함수형 컴포넌트 안에서 사용할 수 있도록 도와주는 함수
- 클래스형 컴포넌트 없이 함수형 컴포넌트만 사용할 수 있도록 도와줌.
클래스 컴포넌트를 사용할 때는, constructor 안에서 this.state
를 사용해서 state인 count
의 초기 값을 0으로 설정할 수 있다.
class Example extends React.Component {
constructor(props) {
super(props);
this.state = {
count: 0
};
}
하지만 함수 컴포넌트는 this를 가질 수 없기 때문에 this.state를 사용할 수 없다. 그래서 useState Hook
을 직접 컴포넌트에 호출한다.
import React, { useState } from 'react';
function Example() {
// 새로운 state 변수를 선언하고, 이것을 count라 부른다
const [count, setCount] = useState(0);
useEffect는 기존에 클래스형 컴포넌트에서 componentDidMount 나 componentDidUpdate, componentWillUnmount를 이용하던 것을 함수형 컴포넌트에서 하나의 API로 통일시켜준 것이다.
깔끔한 정리 멋있어요~ :)