2023년 6월 26일 월요일

데이터 바인딩과 템플릿 문법

 데이터 바인딩과 템플릿 문법은 Vue 애플리케이션에서 데이터를 화면에 표시하고 조작하는 핵심 개념입니다. Vue는 데이터와 DOM 요소를 바인딩하여 데이터의 변화를 자동으로 감지하고 화면을 업데이트합니다.



1. 보간법 (Interpolation)


Vue에서는 중괄호 {{ }}를 사용하여 데이터를 HTML 템플릿에 삽입하는 보간법을 제공합니다. 이를 통해 데이터를 화면에 표시할 수 있습니다.

<div>
  <p>{{ message }}</p>
</div>

위의 코드에서 message는 Vue 인스턴스의 데이터로 정의된 값입니다. Vue는 데이터의 변화를 감지하여 템플릿에 있는 해당 표현식을 업데이트합니다.



2. 디렉티브 (Directives)


디렉티브는 Vue에서 제공하는 특수 속성으로, DOM 요소에 특정 동작을 수행하도록 지시합니다. 가장 일반적인 디렉티브는 v-bind와 v-on입니다.


  • v-bind: HTML 속성에 데이터를 바인딩할 때 사용됩니다. v-bind를 사용하여 동적으로 HTML 속성을 설정하거나, CSS 클래스를 추가하거나 제어할 수 있습니다.
<img v-bind:src="imageUrl" alt="Image">
<button v-bind:class="{ active: isActive }">Button</button>


  • v-on: 이벤트를 처리하기 위해 사용됩니다. v-on을 사용하여 이벤트 리스너를 추가하고, 메서드를 호출하거나 데이터를 업데이트할 수 있습니다.
<button v-on:click="increment">Increment</button>



3. 양방향 데이터 바인딩


Vue는 v-model 디렉티브를 통해 양방향 데이터 바인딩을 지원합니다. 이를 사용하여 폼 입력 요소와 Vue 인스턴스의 데이터를 동기화할 수 있습니다.

<input v-model="message" type="text">

위의 코드에서 message는 Vue 인스턴스의 데이터로, 사용자가 입력한 값과 동기화됩니다.



4. 템플릿 문법


Vue의 템플릿 문법은 JavaScript 표현식을 사용하여 데이터를 표현하고 조작할 수 있도록 합니다. 템플릿 내에서 JavaScript 표현식을 사용하기 위해 중괄호 {{ }} 안에 JavaScript 코드를 작성할 수 있습니다.

<p>{{ count * 2 }}</p>
<p>{{ message.toUpperCase() }}</p>


템플릿 문법은 데이터 바인딩을 비롯하여 조건문(v-if, v-else), 반복문(v-for), 이벤트 처리 등 다양한 기능을 제공합니다.

이제 데이터 바인딩과 템플릿 문법에 대한 이해를 바탕으로 다음 단계로 진행할 수 있습니다.






Vue 인스턴스 생성 및 라이프사이클 훅

 Vue 애플리케이션을 개발하기 위해 Vue 인스턴스를 생성하고, Vue의 라이프사이클 훅을 이해하는 것이 중요합니다. Vue 인스턴스는 Vue 애플리케이션의 루트를 나타내며, Vue 컴포넌트와 상호작용하고 화면에 데이터를 렌더링합니다.


1. Vue 인스턴스 생성


Vue 인스턴스를 생성하려면 new Vue()를 사용하고 인스턴스에 옵션을 전달해야 합니다. 일반적으로 el, data, methods, computed, watch 등의 옵션을 사용합니다.


new Vue({
  el: '#app', // Vue 인스턴스를 마운트할 HTML 요소 선택자
  data: {
    message: '안녕하세요!' // Vue 인스턴스의 데이터
  },
  methods: {
    greet() {
      alert(this.message);
    }
  }
});

위의 코드에서 el 옵션은 Vue 인스턴스를 마운트할 HTML 요소를 선택합니다. data 옵션은 Vue 인스턴스의 데이터를 정의하고, methods 옵션은 Vue 인스턴스의 메서드를 정의합니다.



2. 라이프사이클 훅


Vue 인스턴스는 라이프사이클 훅을 가지며, 애플리케이션의 다양한 단계에서 실행되는 콜백 함수입니다. 일반적으로 초기화, 렌더링, 업데이트 등의 단계에서 특정 로직을 수행하거나 작업을 처리하는 데 사용됩니다.

일반적인 라이프사이클 훅의 순서는 다음과 같습니다


  • beforeCreate: Vue 인스턴스가 초기화되기 전에 실행됩니다.
  • created: Vue 인스턴스가 초기화된 후에 실행됩니다.
  • beforeMount: Vue 인스턴스가 마운트되기 전에 실행됩니다.
  • mounted: Vue 인스턴스가 마운트된 후에 실행됩니다.
  • beforeUpdate: 데이터가 변경되어 Vue 인스턴스가 업데이트되기 전에 실행됩니다.
  • updated: 데이터가 변경되어 Vue 인스턴스가 업데이트된 후에 실행됩니다.
  • beforeDestroy: Vue 인스턴스가 파괴되기 전에 실행됩니다.
  • destroyed: Vue 인스턴스가 파괴된 후에 실행됩니다.


이러한 라이프사이클 훅을 사용하여 특정 시점에서 필요한 작업을 수행할 수 있습니다. 예를 들어, created 훅에서 초기 데이터를 로드하거나, mounted 훅에서 외부 라이브러리를 초기화할 수 있습니다.


위의 내용을 기반으로 Vue 인스턴스의 생성과 라이프사이클 훅에 대한 이해를 바탕으로 다음 단계로 진행할 수 있습니다.