MVVM Pattern
View instance
- Vue instance === 1개의 객체
- 아주 많은 속성과 메서드를 이미 가지고 있고, 이러한 기능들을 사용하는 것
el (element)
- Vue instance 와 DOM을 연결(mount)하는 옵션
- HTML id 혹은 class와 마운트 역할
- View와 Model을 연결하는 역할
- Vue instance와 연결되지 않은 DOM 외부는 Vue의 영향을 받지 않음(Vue 속성 및 메서드 사용 불가)
- 새로운 Vue instance 생성
- 생성자 함수 첫번째 인자로 Object 작성
- el 옵션에 #app 작성 = DOM 연결
data
- Vue instance의 데이터 객체 혹은 인스턴스 속성
- 데이터 객체는 반드시 기본 객체 {} (Object)여야 함
- 객체 내부의 아이템들은 value로 모든 타입의 객체를 가질 수 있음
- 정의된 속성은 interpolation {{}} 을 통해 view에 렌더링 가능함
- Vue instance에 data 객체 추가
- data 객체에 message 값 추가
- 추가된 객체의 각 값들은 this.message 형태로 접근 가능
methods
- Vue instance의 method들을 정의하는 곳
- methods 객체 정의
[주의] methods with Arrow Function
- 메서드를 정의할 때, Arrow Function을 사용하면 안됨
- Arrow Function의 this는 함수가 선언될 때 상위 스코프를 가리킴
- 즉 this가 상위 객체 window를 가리킴
- 호출은 문제없이 가능하나 this로 Vue의 data를 변경하지 못함