- 선언형 2. 컴포넌트 기반 3. 범용성
선언형
한 페이지를 보여주기 위해 html, css, js를 나눠서 적기보다는
하나의 파일에 명시적으로 작성할 수 있게 jsx를 활용한 선언형 프로그래밍을 지향한다
컴포넌트 기반
컴포넌트 : 하나의 기능을 위해 여러 코드를 묶어놓은 것
컴포넌트로 분리하면 서로 독립적이고 재사용 가능하기 때문에 기능 자체에 집중하여 개발할 수 있다
코드를 보고 애플리케이션을 떠올릴 수 있어야 한다
범용성
자바스크립트 프로젝트 어디에든 유연하게 적용될 수 있다
페이스북에서 관리되어 안정적이고 가장 유명하며 리액트 네이티브로 모바일 개발도 가능
> jsx -babel(컴파일)-> js(브라우저가 이해할 수 있는 언어)
[기존] html/css/js -> [react] css/jsx(확장된 js로 마크업 형태의 코드를 작성해 DOM에 배치할 수 있다)
리액트 spa를 쉽고 빠르게 개발할 수 있도록 만들어진 툴 체인
필요한 nodejs 패키지들을 포함한 툴체인
트랜스파일과 컴파일의 차이 알기
npx create-react-dom
새로운 디렉토리를 생성하고 node_modules에 필요한 패키지들을 넣는다
package.json, package-lock.json에 필요한 패키지들의 정보가 목록으로 나와있다
scripts에 react에서 실행할 수 있는 명령들의 목록이 나와있다
import : nodejs, src에 있는 js 파일 또는 패키지를 가져올 수 있다
reactDom.render를 통해 dom에 어떻게 붙일지를 알 수 있다