React를 사용하는 이유
- 컴포넌트 기반
- 특정 기능을 구현하거나 특정 화면을 구현할 때 그 화면을 구성하는 일에만 집중할 수 있게 해준다.
- 여러명의 프론트엔드가 하나의 페이지를 만들 때 서로 다른 컴포넌트 파일을 작업하도록 구성할 수 있으며, 이를 통해 효율적인 코드 분리가 가능하다.
- 하나의 작은 단위로 개발을 하여 조합, 분해가 용이하다.
- Virtual DOM으로 DOM 업데이트 최적화
- React에서는 DOM을 추상화한 Virtual DOM을 이용해 필요한 부분만 다시 그리는 방식을 적용하여 DOM 업데이트를 최적화했다.
- 개발자들이 DOM 업데이트를 오용하는 경우를 Virtual DOM으로 해결했다.
- 화면이 자주 바뀌는 경우 렌더링 자원을 아낄 수 있다.
- 생태계 및 수많은 커뮤니티와 지속적 개발
- React의 생태계는 타 라이브러리 혹은 프레임워크 커뮤니티보다 더 활발하다.
- 수많은 기업에서 React를 많이 사용하고 있다.
- React Native의 앱 개발 기능
- React를 기반으로 앱을 제작하는 프레임워크인 React Native가 있어 React 경험이 있는 사람들은 빠르게 배울 수 있고, 쉽게 모바일 앱을 만들 수 있다.
- 다양한 Hooks 지원
- 기존 클래스형 컴포넌트에서 사용하던 기능들을 함수형 컴포넌트에서도 사용할 수 있도록 지원하는 내장 메소드들이다.
- 학습 난이도가 높은 클래스형 컴포넌트를 배우지 않아도 Hooks만 배우게 되면 쉽게 동일한 기능을 하는 컴포넌트 개발이 가능하다.
- JSX 지원
- React에서는 JavaScript 코드와 Markup 코드를 함께 작성할 수 있다.
- 익숙한 HTML과 JS의 기능 코드를 하나의 컴포넌트로 처리할 수 있다?
ㅤ | React | Vue | Angular |
ㅤ | 라이브러리 | 프레임워크 | 프레임워크 |
기반 언어 | JavaScript, JSX | HTML, CSS, JavaScript | TypeScript |
진입 장벽 | 보통 | 낮음 | 높음 |
바인딩 | 단방향 지원 | 양방향 지원 | 양방향 지원 |
모델 | Virtual DOM(Flux) | Virtual DOM(Flux) | MVC |
렌더링 속도 | 매우 빠름 | 매우 빠름 | 느림 |
대규모 애플리케이션 | 보통 | 부적합 | 적합 |
초기 로딩 시간 | 빠름 | 빠름 | 느림 |
메모리 사용량 | 적음 | 적음 | 많음 |
ㅤ | ㅤ | ㅤ | ㅤ |