•
시중에는 많은 MVC 프레임워크가 있음에도 불구하고 왜 리액트를 만든 것이며 왜 사용 해야하는 것 일까?
•
SPA 등장이 초기에 나온 말.
React는 MVC 프레임 워크, 탬플릿이 아니다.
•
리액트는 재활용 가능한 UI 컴포넌트를 생성을 장려하는, 직접 구성 가능한 유저인터페이스를 만드는 라이브러리다.
•
전통적으로 웹 애플리케이션은 UI는 탬플릿을 이용하여 만들어졌으나 리액트는 큰 탬플릿을 UI Component로 쪼개는 방식으로 접근했다. → 실제 모든 기능을 제공하는 프로그래밍 언어를 이용하여 보이는 UI를 렌더할 수 있다는 뜻
1.
자바스크립트의 모든 기능을 사용할 수 있다. 대부분의 모든 요구사항에 대응할 수 있다.
2.
JSX(TSX)를 이용하여 마크업과 UI로직을 관리하므로 가독성 좋고 유지보수가 쉬운 코드를 작성할 수 있다.
3.
수동 문자열 연결로 인한 XSS 취약점에 비교적 안전하다.
쉬운 Reactive value의 업데이트
•
전통적인 자바스크립트 웹 애플리케이션은 데이터의 변화를 감지하고 명령형 형태로 DOM을 직접 참조하여 값을 변경해 최신상황을 반영해 왔다. 리액트는 이와 비교해 전혀 다른 접근법을 가진다.
•
컴포넌트가 처음 초기화 될 때 render 메서드가 호출되며 해당 뷰의 경량화 버전의 형태를 생성한다. 해당 경량화 버전의 형태로 부터 문자열 형태의 마크업이 생성되며 HTML 문서로 주입된다.
•
데이터가 바뀌면 render 메서드가 다시 호출되며 최대한 효율적인 업데이트를 위해 render 메서드의 이전 결과값과 새로운 호출 결과값을 비교하여 최소한의 변화를 DOM에 적용한다.
•
리렌더는 아주 빠르기 때문에 개발자는 명시적으로 특정 데이터 바인딩과 같은 추가작업이 필요하지 않다.