React는 SPA (Single Page Application) 즉, 단일 페이지 응용 프로그램에서 사용자 인터페이스를 구성는데 사용되는 오픈 소스 프론트엔드 JS 라이브러리 입니다.
React UI 컴포넌트 라이브러리다.
React는 선언적이며, 뷰 또는 UI레이어의 역할만 한다.
React는 ReatDOM.render() 메서드를 통해 컴포넌트를 실제로 사용한다.
React는 컴포넌트를 클래스로 생성하고 필수적인 render 메서드를 포함한다.
React 컴포넌트 클래스 만드는 방법
class NAME exteds React.Component
React는 컴포넌트는 재사용할 수 있고, 불가변 속성을 전달받아서 this.prps.Name으로 접근할 수 있다.
React의 속성은 해당 컴포넌트의 문맥에서 변경할 수 없다.
JSX는 함수 호출과 객체 생성을 위한 문법적 편의를 제공하는 자바스크립트의 확장으로, React.createElement() 호출을 반복해야 하는 불편을 해소한다.
{name}
true
이다.if/else
가 필요할 경우에는 삼항연산자, 즉시 실행함수로 처리하는 게 좋다. -- 조건부 렌더링{/*....*/}
자바스크립트
ReactDOM.render(
React.createElement('h1', null, 'Hello world!'),
document.getElementById('content')
)
JSX
ReactDOM.render(
<h1>Hello World!</h1>
document.getElementById('content')
)
react component에 전달되는 값을 포함하는 단일 값 또는 객체입니다. 부모 component 에서 자식 component 로 전달되는 데이터 입니다.
{this.props.propsName}
propsName="value";
<Cpnt>여기에 있는 값이 들어간다.</Cpnt>
기본값 설정
Component.defaultProps = {..}
Type 검증
component.propTypes = {...}
component의 life cycle 동안 변경될 수 있는 정보를 담고 있는 객체입니다.
{this.state.stateName}
props와 state는 모두 JavaScript 객체입니다 두 가지 다 렌더링 결과에 영향을 주는 정보를 가지고 있지만, component 와 관련된 기능면에서 차이가 있습니다.
props는 함수 매개변수와 같이 component 요소로 전달됩니다. state 는 component 안에서 관리되고 사용할 변수 선언과 비슷합니다.
언제 클래스 컴포넌트를 사용하고 언제 Functional 컴포넌트를 사용할까요?
Component 에서 state 또는 life cycle methods 를 필요로 한다면 Class component를 사용하고 그렇지 않다면 Functional component를 사용할 수 있습니다.