본문 바로가기
  • 일하면서 배운 내용 끄적이는 블로그
Vue

Vue 객체의 기본 속성 정리

by dhl7799 2024. 5. 2.
var vm = new Vue({
     //여기 정의
});

 

Vue 객체의 기본 속성들에 대해 정리해본다.

el

Vue 인스턴스가 마운트될 요소를 가르킴
예)

new Vue({
  el: '#app',
  components: { App },
  template: '<App/>'
})

 

el: '#app'는 Vue 인스턴스를 #app 요소에 마운트함

name

Vue 컴포넌트의 이름을 나타냄

해당 컴포넌트를 다른곳에서 참조하거나 재사용할 때 유용함

<script>
export default {
  name: 'App',
  /* 생략 */
};
</script>

 

'App'이라는 컴포넌트의 이름을 나타냄

 

name 활용 예)

router.replace({name : 'main'});

 

이런식으로 페이지 이동

data

Vue 인스턴스에서 사용할 데이터를 정의
예)

data() {
    return {
      count: 0
    };
}

 

Vue에서는 데이터는 함수 형태로 리턴하는 방식으로 정의한

methods

Vue 인스턴스에서 사용할 메서드를 정의한다.
예)

methods:{
    addCount: function(number) {
      this.count = this.count + number;
    },
    showCount: function(){
      return this.count;
    }
}

computed

Vue 인스턴스에서 사용할 계산된 속성을 정의
예)

computed: {
    isLargerThanTen: function () {
      return this.count * 3 > 10 ? "10보다 큽니다." : "10보다 작거나 같습니다."
    }
}

*computed와 methods의 차이*

computed는 본인이 참조하고 있는 data가 변경될때만 호출되는데

methods는 본인이 참조하고 있는 data가 아닌 전혀 관계없는 data가 변경될때도 호출되기 때문에 비효율적이다.

watch

Vue 인스턴스에서 감시할 대상을 정의하고 해당 대상이 변경될 때 실행할 동작을 정의.
예)

watch: {
    count(newVal, oldVal){
      console.log("count is changed " + oldVal + " to " + newVal);
    }
}

 

count라는 data를 감시해서 변경이 일어나면 콘솔 출력

첫번째 패러미터엔 변경된 이후의 값, 두번째 패러미엔 변경 이전의 값이 담김

created

Vue 인스턴스가 생성된 직후에 호출되는 라이프사이클 훅을 정의.
예)

created() { 
  console.log('Vue 인스턴스가 생성되었습니다!'); 
}

 

Vue 인스턴스가 생성된 직후에 로그를 출력.

mounted

Vue 인스턴스가 마운트된 후에 호출되는 라이프사이클 훅을 정의.
예)

mounted() {
    console.log("Vue 인스턴스가 마운트되었습니다");
}

 

Vue 인스턴스가 마운트된 후에 로그를 출력.

template

Vue 인스턴스의 마크업 템플릿을 정의한다. template 옵션을 사용하여 뷰를 마크업으로 나타낼 수 있음.

<template>
  <div id="app" >
    <p>{{ showCount() }}</p>
    <p>{{isLargerThanTen}}</p>
    <button v-on:click="addCount(2)">2를 더해줘</button>
  </div>
</template>

<script>
export default {
  name: 'App',
  data() {
    return {
      count: 0
    };
  },
  methods:{
    addCount: function(number) {
      this.count = this.count + number;
    },
    showCount: function(){
      return this.count;
    }
  },
  watch: {
    count(newVal, oldVal){
      console.log("count is changed " + oldVal + " to " + newVal);
    }
  },
  computed: {
    isLargerThanTen: function () {
      return this.count * 3 > 10 ? "10보다 큽니다." : "10보다 작거나 같습니다."
    }
  },
  created() {
    console.log("Vue 인스턴스가 생성되었습니다");
  },
  mounted() {
    console.log("Vue 인스턴스가 마운트되었습니다");
  }
};
</script>

<style scoped>
/* v-cloak 디렉티브를 사용할 스타일 */
[v-cloak] {
  display: none;
}
</style>

 

그 외에도 Vue의 라이프 사이클 관련 속성들이 있다.

 

'Vue' 카테고리의 다른 글

Vue 프로젝트 경로의 @  (0) 2024.05.07
emit으로 자식 -> 부모 데이터 전달  (0) 2024.05.03
Vue 프로젝트 동작 순서  (0) 2024.05.02
Props vs EventBus vs Vuex  (0) 2024.05.02
<fragment> 태그  (0) 2024.03.29