다루어야 할 데이터가 많고 동적 api 요청이 많은 페이지면 많은 직접적인 DOM 조작으로 인해 코드가 복잡해져 실수를 유발하고 성능 또한 느려졌다.
React는 Component 기반으로 화면을 구성하여 효율적인 코드 분리를 통해 생산성과 재사용성을 높일 수 있기 때문이다. Virtual DOM 또한 매력적으로 느껴진다.
페이스북에서 제공하는 컴포넌트 기반 라이브러리
프론트엔드 라이브러리 중 하나인데 아래 특징들을 보면서 리액트가 무엇인지 파악 하는게 좋을 것 같다.
선언적이다
const double = (arr) => {
let results = [];
for (let i = 0; i < arr.length; i ++) {
results.push(arra[i] * 2);
}
return results;
}```
const double = (arr) => {
return arr.map((elem) => elem * 2);
}```
Virtual DOM
컴포넌트
단방향 데이터 바인딩
JSX
node.js : Chrome V8 Javascript 엔진으로 빌드된 Javascript 런타임
npm : node.js에서 사용할 수 있는 모듈들을 패키지화하여 모아둔 저장소. 개발에 필요한 다양한 모듈들을 다운(node.js를 설치하면 같이 설치)
Create React App : 복잡한 설정없이 React 개발 환경 구성
런타임 : 프로그래밍 언어가 구동되는 환경
babel : 2015년에 업데이된 ES6를 사용할 때, 이전 문법인 ES5로 변환해주는 변환장치. 바벨을 통해 React를 다양한 브라우저 환경에서 실행이 가능해짐