React로 개발을 하고 있기에 React에 대해 알아갈 겸, React와 같이 사용되고 있는 Vue와 Angular 프레임워크와 비교해 보고 싶었다.
이를 알기 위해서는 웹사이트에서의 MVC구조에 대한 이해가 선행되어야 하기 때문에 MVC 구조가 무엇인지 먼저 알아보기로 했다.
MVC 패턴: Model, View, Controller
참고자료: https://www.youtube.com/watch?v=AERY1ZGoYc8
https://newindow.tistory.com/66
https://developer.mozilla.org/ko/docs/Glossary/MVC
리액트는 정확하게 말해서 프레임워크가 아닌 라이브러리다
- 프레임워크: 뼈대나 기반 구조, 필수적인 코드나 알고리즘 등 어느 정도의 구조를 제공해준다.
- 라이브러리: 특정 기능, 함수들의 집합. 프로그래머가 어떤 기능을 수행하기 위해서 도움을 주는 또는 필요한 것을 제공해주는 역할
=> 차이점: 흐름을 누가 지니고 있냐! 프레임워크는 전체적인 흐름을 자체적으로 가지고 있어 개발자가 그 안에서 필요한 코드를 작성하고, 라이브러리는 원하는 기능을 구현하고 싶을 때 가져다 쓸 수 있음
위에서 말했듯이 view는 시각적인 부분을 다룬다.
사용자 화면에 view를 보여주는 것을 렌더링이라고 한다.
리액트는 이런 렌더링과정에서 초기렌더링
과 컴포넌트의 데이터 변경으로 다시 실행되는 리렌더링
개념을 통해 데이터가 변할 때마다 새롭게 리렌더링하여도, 성능을 아끼고 최적의 사용자 경험을 제공할 수 있다.
v-model
디렉티브를 사용해서 폼 input과 textarea 엘리먼트에 양방향 데이터 바인딩을 생성할 수 있다.
//예제
<span> 여러줄을 가지는 메시지: </span>
<p style="white-space: pre=line">{{message}}</p>
<br>
<textarea v-model="message" placeholder="여러줄을 입력해보세요"></textarea>
ViewModel? Controller 역할을 수행. Vue 객체가 담당
데이터 바인딩: 두 데이터 혹은 정보의 소스를 모두 일치시키는 기법이다. 즉, 화면에 보이는 데이터와 브라우저 메모리에 있는 데이터를 일치시키는 기법이다.
- 단반향 바인딩: 처음 웹페이지가 렌더링되고 데이터를 표시하는 과정이 단방향으로 진행되기 때문에 이벤트를 통해 데이터를 적용할 수 있다.
양방향 바인딩의 경우, 사용자의 입력값이 곧바로 코드 상 변수에 바인딩되어 이벤트 없이 값(데이터)이 변경될 수 있다.