[javascript] Vue.js의 기본 구조

Vue.js는 사용자 인터페이스를 구축하기 위한 프로그레시브 프레임워크입니다. 이를 사용하여 웹 애플리케이션을 빠르고 효율적으로 개발할 수 있습니다. Vue.js의 기본 구조는 간단하면서도 강력하며, 다음과 같은 요소들로 구성되어 있습니다.

Vue 인스턴스

Vue.js 애플리케이션은 Vue 인스턴스로 시작됩니다. Vue 인스턴스는 Vue 클래스의 인스턴스로, 애플리케이션의 루트 컴포넌트 역할을 합니다. 다음은 Vue 인스턴스의 기본 구조입니다.

new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue!'
  },
  methods: {
    greet() {
      console.log(this.message);
    }
  }
});

Vue 인스턴스는 el, data, methods 등의 속성을 갖습니다. el 속성은 Vue 인스턴스가 마운트 될 HTML 엘리먼트를 지정하고, data 속성은 애플리케이션의 데이터를 정의합니다. methods 속성은 Vue 인스턴스의 메소드를 정의하는데 사용됩니다.

컴포넌트

Vue.js는 컴포넌트 기반 아키텍처를 갖고 있습니다. 컴포넌트는 재사용 가능한 코드 블록으로, 애플리케이션의 UI를 구성하는데 사용됩니다. Vue 컴포넌트는 다음과 같은 구조를 가지고 있습니다.


Vue.component('my-component', {
  template: '<div>{{ message }}</div>',
  data: function() {
    return {
      message: 'Hello from component!'
    }
  }
});

위의 예제에서 template 속성은 컴포넌트의 HTML 템플릿을 지정하고, data 속성은 컴포넌트 내의 데이터를 정의합니다.

라우터

Vue.js는 Vue Router를 사용하여 싱글 페이지 애플리케이션(SPA)을 구현할 수 있습니다. Vue Router는 라우팅 기능을 제공하여 다중 페이지 애플리케이션의 장점을 활용하면서도 단일 페이지로 구성할 수 있습니다. 다음은 Vue Router를 사용한 라우터의 기본 구조입니다.

const router = new VueRouter({
  routes: [
    {
      path: '/',
      component: Home
    },
    {
      path: '/about',
      component: About
    }
  ]
})

new Vue({
  router
}).$mount('#app')

위의 예제에서 routes 속성은 라우팅 경로와 각 경로에 대한 컴포넌트를 정의합니다. router 객체는 new VueRouter()로 생성되며, Vue 인스턴스의 router 속성에 할당됩니다. Vue 애플리케이션의 루트 엘리먼트에 router-view 컴포넌트를 추가하면 라우터가 작동합니다.

결론

Vue.js는 간단하면서도 강력한 구조를 갖춘 프레임워크로, 웹 애플리케이션 개발에 많은 도움을 주고 있습니다. Vue.js의 기본 구조를 이해하고, Vue 인스턴스, 컴포넌트, 라우터 등의 요소들을 적절하게 활용하면 효율적인 개발이 가능합니다.

참고 자료: