Front-end/Vue

vue 소개

- 프론트엔드 자바스크립트 프레임워크

- Angular, Backbone, React 에 비하여 매우 작고 가벼우며, 복잡도도 낮음

- CDN 으로 불러와서 사용하기도 매우 간편, 원한다면 webpack 으로도 구성 가능

- 매뉴얼이 타 프레임워크 / 라이브러리에 비해서 한글화가 엄청 잘 되어있음

   - 다른 프레임워크와의 비교 

 

 

1. vue의 구조 

- 코어 라이브러리는 화면단 데이터 표현에 관한 기능들을 중점적으로 지원하지만 프레임워크의 기능인 라우터, 상태관리, 테스팅 등을 쉽게 결합할 수 있는 형태로도 제공

. 즉, 단순 라이브러리의 기능 외에 프레임워크 역할도 수행

 

 

 

2-1. vue의 특징 - MVVC 패턴

- UI 화면 개발 방법 중 하나인 MVVM 패턴의 뷰 모델에 해당하는 화면단 라이브러리

- MVVM 패턴이란. 화면을 모델(Model) - 뷰(View) - 뷰 모델(Viewmodel)로 구조화하여 개발하는 방식

- 화면의 요소들을 제어하는 코드와 데이터 제어 로직을 분리하여 더 직관적으로 이해할 수 있고, 추후 유지 보수가 편해짐

 

용어 설명
뷰(View) 사용자에게 보이는 화면
돔(DOM) HTML문서에 들어간느 요소(태그, 클래스, 속성 등)의 정보를 담고있는 데이터 트리 
돔 리스너(DOM Listener) 돔의 변경 내역에 대해 즉각적으로 반응하여 특정 로직을 수행하는 장치
모델(Model) 데이터를 담는 용기
보통은 서버에서 가져온 데이터를 자바스크립트 객체 형태로 저장
데이터 바인딩(Data Binding) 뷰(view)에 표시되는 내용과 모델의 데이터를 동기화
뷰 모델(ViewModel) 뷰와 모델의 중간영역, 돔 리스너와 데이터 바인딩을 제공

 

 

- MVVM 구조의 처리 흐름은?

구글 검색창을 예시로 들자면, (실제 구글은 뷰로 개발되지 않음)

뷰(View) : 사용자에게 비춰지는 구글 검색화면 전체

돔(DOM) : 구글로고, 검색창, 키보드, google 검색 버튼 등의 HTML 요소

 

여기서 만약 검색어를 입력하고 버튼을 클릭한다면?

 

위와 같은 검색화면이 나옴

즉, google 검색 버튼을 클릭하였을 때, 돔 리스너에서 버튼의 클릭을 감지, 버튼이 동작하면 검색결과를 보여주는 로직 실행

이 처리 과정에서 데이터 바인딩이 관여, 검색 결과에 해당하는 데이터를 모델에서 가져와 화면에 나타내는 것

 

 

2-2. vue의 특징 - 컴포넌트 기반 프레임워크

- 컴포넌트란. 레고 블록을 조합하는 것과 비슷

- 화면을 왼쪽같이 구성하면 오른쪽과 같은 컴포넌트 트리 구조를 가지게 됨

- 컴포넌트 기반의 프레임워크를 사용함으로서 코드의 재사용성이 향상, 직관적인 화면 구조를 가짐

 

 

3. vue의 장점; 리액트와 앵귤러의 장점을 가진 프레임워크

- 뷰는 Angular의 양방향 데이터 바인딩과 React의 단방향 데이터 흐름의 장점을 모두 결합한 프레임워크 

- 양방향 데이터 바인딩 : 화면에 표시되는 값과 프레임워크의 모델 데이터 값이 동기화되어 한쪽이 변경되면 다른 한쪽도 자동으로 값이 변경되는 것

- 단방향 데이터 흐름 : 컴포넌트의 단방향 통신

- 컴포넌트 간에 데이터를 전달할 때 항상 상위 컴포넌트에서 하위 컴포넌트 한 방향으로만 전달하게끔 프레임워크가 구조화되어 있는 것을 말함

 

- 이 외에도 빠른 화면 렌더링을 위해 리액트의 가상 돔 렌더링 방식을 적용하여 사용자 인터랙션이 많은 요즘의 웹 화면에 적합한 동작 구조를 갖춤

- 가상 돔을 활용하면 특정 돔 요소를 추가하거나 삭제하는 변경이 일어날 때 화면 전체를 다시 그리지 않고 프레임워크에서 정의한 방식에 따라 화면을 갱신

- 따라서 브라우저 입장에서는 성능 부하가 줄어들어 일반 렌더링 방식보다 더 빠르게 화면을 그릴 수 있다.

 

--수정중--

 

 

 

 

*출처 :

- velopert.com/3007

- https://coding-start.tistory.com/213