- Chorme V8 JavaScript 엔진으로 빌드된 JavaScript 런타임이다.
- 노드 환경에서 자바스크립트 혹은 타입스크립트로 돌아가는 서버 또는 CLI 프로그램 등을 만들 수 있다.
- Node.js로 만들어진 모듈을 웹에서 받아서 설치하고 관리해주는 프로그램
- yarn도 같은 역할을 한다.
- 노드를 설치하면 같이 설치된다.
npm을 이용한 방법
npm install -g create-react-app
입력 -> 설치create-react-app -V
입력 -> 버전 확인 (설치 확인)
npx를 이용한 방법 (권장)
npx create-react-app
npm과 npx의 차이
npm은 설치하는 프로그램이고, npx는 임시로 설치해서 실행 후 지워지는 프로그램이다.
- 터미널에서
npm start
입력 (VS 코드 사용)ctrl + c
: 실행 종료
JS
- public : index.html
react실행 시 나오는 첫 화면
컴포넌트가<div id="root"></div>
태그 안으로 들어간다.- src : index.js
document.getElementById('root')
를 통하여 index.html에 진입
<App />
: 리액트를 통해 만든 사용자 정의 태그 (컴포넌트)
import App from './App'
: App 컴포넌트를 불러온다 (App.js)- src : App.js
App 컴포넌트로 실제 구현한 파일
CSS
import './App.css'
: CSS파일 불러오기
npm run build
입력 -> 디렉토리에 build 파일 생성JSX
JSX
는javascript
+xml
로 자바스크립트의 확장 구문이다.
이 문법은 Element(요소)를 리액트에서 제공해주기에 마크업 코드처럼 작성 할 수 있다.import React from 'react'; const HelloWorld = () => { return <div>Hello World!</div>; } export default HelloWorld;
- 이런식으로 HTML 태그처럼 적을 수 있기에 굉장히 편하다.
Component
컴포넌트는 UI를 구성하는 개별적인 뷰의 단위이다.
컴포넌트의 특징은 재사용성이다.
- 리액트는 Virtual DOM을 이용한다.
기존의 View를 계속 바꾸는 형식으로 사용할 경우 성능 저하를 일으키기에 Virtual DOM을 이용하여 먼저 가상의 돔에서 새롭게 렌더링하여 기존의 View에 돔과 비교하여 바뀐 부분만 적용하는 방식이다.- Component를 이용한 효율적 재사용과 유지보수에 용이하다.
Component는 UI(User Interface)를 구성하는 뷰의 단위로 전체 앱은 Component들이 모여서 만들어 지게 된다. 이렇게 각 UI마다의 단위이기에 다른 앱에서도 쉽게 재사용을 할 수 있다.- React는 JSX문법을 이용한다.
JSX문법을 HTML과 같은 마크업 언어의 형태를 띄고 있기 때문에 비교적 쉽게 공부할 수 있는 부분도 있다.
- 리액트는 View Only이다.
결국 View만을 만들 수 있기에 데이터 관련 처리나 Routing 같은 경우는 또 다른 라이브러리를 이용해야하는 불편함이 있다.- IE8 이하에서는 지원을 하지 않는다.
2022년 6월 부터는 MS에서 IE에 지원을 종료하겠다고 하여 이 단점은 곧 없어질 예정이다.