---
# System prepended metadata

title: Vue.js 기초 익히기 (1)
tags: [Vue.js 기초 익히기, 지호]

---

Vue.js 기초 익히기 (1)
===

###### tags: `지호`, `Vue.js 기초 익히기`

---

## 1. 뷰 인스턴스 생성하기 

### Vue.js
- 프로그레시브 프레임워크
- 다른 프레임워크와 달리 뷰를 점진적으로 채택 --> 기존 프로젝트를 뷰 프로젝트로 만들고 싶을 때 부분적으로 업데이트하면서 전환 가능
- 뷰 코드를 기존 프로젝트에 추가: 직접 `<script>` 추가
- 처음부터 뷰 프로젝트 생성: Vue CLI

<br/>

### 뷰 인스턴스 생성
모든 뷰 앱은 새로운 뷰 인스턴스를 만드는 것부터 시작


<br/>

## 2. 데이터 바인딩

### 데이터와 메소드
- 뷰 인스턴스가 생성될 때 `data` 객체에 있는 모든 속성이 뷰의 반응형 시스템에 추가된다. 
- 데이터가 변경되면 화면은 다시 렌더링된다.
- `data`에 있는 속성들은 인스턴스가 생성될 때 존재한 것들만 반응형 -> 새 속성을 추가하면, 변경되어도 화면이 갱신되지 않는다.

<br/>

### 데이터 바인딩
`v-bind`
- 뷰 인스턴스의 데이터 속성을 해당 HTML 요소에 연결할 때 사용
- `:` 로 대체 가능
```javascript=
<input :type"text" v-bind:value="inputData">
```

![image](https://user-images.githubusercontent.com/24283401/161657919-689ead17-9d7a-4395-be81-dc14c875f2cb.png)


<br/>

## 3. 이벤트
- 이벤트 수식어: https://kr.vuejs.org/v2/guide/events.html#%EC%9D%B4%EB%B2%A4%ED%8A%B8-%EC%88%98%EC%8B%9D%EC%96%B4
- 키 수식어: https://kr.vuejs.org/v2/guide/events.html#%ED%82%A4-%EC%88%98%EC%8B%9D%EC%96%B4

`v-on:`
- DOM 이벤트를 듣고 트리거 될 때 JavaScript 실행
- 해당 HTML 요소의 이벤트를 뷰 인스턴스의 로직과 연결할 때 사용
- `@`로 대체 가능
- 사용자 이벤트에 의해 실행된 뷰 메서드 함수의 첫번째 인자에는 해당 이벤트가 들어온다.

![image](https://user-images.githubusercontent.com/24283401/161679585-0b5b30b0-0396-4c70-91f8-c90a3ab3ee4c.png)


## 4. 데이터 양방향 바인딩
- keyup 이벤트에서 키보드 이벤트를 자동으로 넣어줌

`v-model`
- form input과 textarea element에 양방향 데이터 바인딩 생성 가능
- 사용자 입력 이벤트에 대한 데이터를 업데이트
- HTML 입력 요소의 종류에 따라 속성이 다음과 같이 구성
    - input: value / input
    - checkbox: checked / change
    - select: value / change
- 한/중/일어에서는 한글자가 끝나야 반응한다는 한계점 존재

![image](https://user-images.githubusercontent.com/24283401/161681073-1235e87d-2aeb-4706-9962-bf08a2209500.png)

<br/>

## 참고
https://joshua1988.github.io/web-development/vuejs/v-model-usage/

<br/>


