React와 Vue는 SPA를 구현하기 위해 사용되는 라이브러리/프레임워크이다. 이 둘의 특징과 차이점에 대해 정리해보도록 하겠다.
물론 Vanilla JavaScript만으로도 SPA를 구현할 수 있다. 하지만 React나 Vue를 사용하는 이유는 Virtual DOM이 8할이고 나머지는 뛰어난 재사용성과 유지보수성이 있다.
실제 DOM을 조작할 때마다 발생하는 불필요한 리렌더링을 방지하기 위해 가상의 DOM을 생성해서 사용한다.
컴포넌트 단위로 작업하기 때문에 재사용성이 뛰어나다.
화면을 구성하는 로직과 데이터를 관리하는 로직이 분리되어 있어 유지보수성이 높다.
리액트는 라이브러리, 뷰는 프레임워크이다. 때문에 리액트의 자유도가 더 높은 편이다.
뷰는 정해진 기능을 가져다 사용하는 방식이라고 생각하면 된다.
리액트는 추가 기능이 필요할 경우 직접 구현하거나 별도 라이브러리를 설치해서 사용한다.
리액트는 단방향 데이터 바인딩을 사용하고, 뷰는 양방향, 단방향 데이터 바인딩을 모두 사용한다.
데이터 바인딩이란, 화면에 보이는 데이터와 브라우저 메모리에 있는 데이터를 일치시키는 방법을 말한다.
뷰는 기존에 html, css, JS로 나눠서 작업하던 방식과 유사하기 때문에 비교적 익숙하다.
반면 리액트는 모든 작업을 JS로 한다. 물론 CSS(SASS)를 분리해서 사용하기도 하지만 요즘은 CSS-in-JS로 바뀌는 추세이다.