UI를 재사용
이 가능하게 하는 여러 조각
으로 개념적으로는 JavaScript 함수와 유사하다.
// 함수형 컴포넌트
function Welcome(props) {
return <h1>Hello, {props.name} </h1>
}
// 클래스 컴포넌트
class Welcome extends React.Component {
render() {
return <h1>Hello, {this.props.name} </h1>
}
}
리액트 엘리먼트는 사용자 정의 컴포넌트로도 나타 낼 수 있다.
const element = <Welcome name="Sara" />;
리액트가 사용자 정의 컴포넌트로 작성한 엘리먼트(Welcome)를 발견하면 JSX 어트리뷰트와 자식을 해당 컴포넌트의 단일 객체로 전달한다. 이 객체를 props
라고 한다.
<주의: 컴포넌트의 이름은 항상 대문자로 시작한다.>
리액트는 소문자로 시작하는 컴포넌트를 DOM 태그로 처리하기 때문에 HTML 태그는 소문자로, 컴포넌트는 대문자로 작성한다
일반적으로 리액트는 최상위 컴포넌트 App
을 가지고 있으며
이 App
컴포넌트 안에 다른 컴포넌트들을 추가하여 ReactDOM.render()
메서드를 이용하여 화면이 렌더링된다.
props
는 properties
의 줄임말이다.props
를 수정해서는 안된다.props
를 다룰 때 순수함수
처럼 동작을 해야한다.순수함수
란 입력값이 바뀌지 않는 것을 말하며 immutable
하다.class
키워드 사용React.Component
를 상속받아야 한다.render()
메서드가 있어야 한다.this.setState
메서드로 state 값 변경이 가능this.props
로 값을 불러올 수 있다.const {name, age, address} = this.props;
useState
메서드로 state 사용[Hooks 중 하나]useState
메서드는 배열이 반환되며 첫번째 원소는 현재상태, 두번째 원소는 상태를 바꾸어주는 함수props
를 불러올 필요없이 바로 호출이 가능const Hello = ({name, age, address}) => {
return (
);
}