웹이 발전하면서 유저와의 상호작용이 많아지고 다루어야 할 데이터가 증가
→ 웹 애플리케이션의 개발과 유지보수가 어려워지게 되었다.
이전 ui 상태를 메모리에 유지해서 변경될 Ui의 최소 집합을 계산하는 기술
→ 불필요한 ui 업데이트를 줄인다.
→ 돔 처리 횟수를 최소화 효율성
→ 성능이 좋아진다.
→ 필요한 곳에서 재사용 가능
→ 독립적으로 사용 가능하기 때문에 유지보수에 좋다.
→ 또 다른 컴포넌트를 포함. (state, props…)
→ 구성을 파악하기 용이
리액트에서 사용하는 자바스크립트 확장 문법
→ jsx로 작성한 코드는 브라우저에서 동작하기 전 Bable이라는 transcompiler를 통해 변환한다.
const hi = <p>Hi<p>
{…}
camelCase(e.g className)
<div style = {{color: ‘red’}}Hello React</div>
중괄호 두번,,사용,,Event
: 태그 작성시에 직접 이벤트와 이벤트 핸들러 부여<div></div>
or <div />
. html과 달리 클로징태그 꼭 써줘야한다. 따라서 html 코드를 그대로 복붙하는 경우 body 태그로 감싸져 있고, body 태그에 자바스크립트가 브라우저 밖에서도 동작하게 하는 자바스크립트 실행 환경으로 크롬의 v8엔진에 기반을 두고 있다.
개발시장이 커지며 웹브라우저 이외의 환경에서도 자바스크립트를 이용해 개발하고자 하는 니즈에 의해 등장하게 되었다.
node.js 환경에서 사용할 수 있는 패키지를 관리할 수 있는 도구이다.
리액트 프로젝트를 시작하는 데 필요한 개발 환경을 세팅해주는 도구(toolchain)으로, 하나의 명령어로 리액트 개발 환경을 구축할 수 있다.