페이스북 개발 팀이 만든 자바스크립트 라이브러리이다.
사용자 인터페이스를 만드는 데 사용한다.
리액트는 Virtual DOM 을 사용한다.
DOM에 변화 발생시 웹 브라우저가 CSS를 다시 연산하고, 레이아웃을 구성하고, 페이지를 리페인트할때 시간이 걸린다. 그러나 Virtual DOM은 바뀐 부분만 실제 DOM에 적용시킨다. 그렇다고 Virtual DOM이 DOM의 상위호환인 것은 아니다! 리액트의 Virtual DOM을 안 쓰고 DOM만 쓰는 게 더 나은 성능을 보이는 경우가 있다.
자바스크립트의 확장 문법이다. 리액트로 프로젝트를 개발할 때 사용한다.
HTML 코드를 작성하는 것과 비슷해서 보기 쉽고 익숙하다. (<JSX를 사용하는 주된 이유)
자바스크립트보다 더욱 높은 활용도를 가지고 있다.
HTML와 비슷하지만 다르다! 컴포넌트에 여러 요소가 있다면 반드시 부모 요소 하나로 감싸야 한다. 그림처럼 <div>
와 </div>
로 감싸지 않으면 오류가 발생한다. div말고도 Fragment 컴포넌트 선언 후 <Fragment>
로 감싸줘도 좋다. 그냥 <>
</>
로 간단하게 감싸줘도 좋다!
감싸주는 이유 :
Virtual DOM 에서 컴포넌트 변화를 감지해 낼 때 효율적으로 비교할 수 있도록 컴포넌트 내부는 하나의 DOM 트리 구조로 이루어져야 한다는 규칙 때문