주요 디렉티브는 다음과 같습니다.
이 외에도 다양한 디렉티브들이 존재합니다.
v-on
<a v-on:click="linkClick">링크를 클릭해봐!</a>
<a @click="linkClick">링크를 클릭해봐!</a>
new vue({
methods: {
linkClick : function(){
alert("링크를 클릭했네?");
}
}
})
v-bind
<a v-bind:href="message">네이버 링크</a>
<a :href="message">네이버 링크</a>
new vue({
data: {
message:"https://www.naver.com"
}
})
v-if
v-show
v-for
<button v-for="button in buttons" v-bind:key="`btn-${button.id}`">
<span>내용은 아래와 같습니다</span>
<span>{{button.title}}</span>
</button>
new vue({
data: {
buttons:[
{id: 1, title: "안녕하세요"},
{id: 2, title: "안녕하세요"},
{id: 3, title: "안녕하세요"},
{id: 4, title: "안녕하세요"},
]
}
})
methods
, computed
, watch
는 Vue.js에서 데이터 변화를 감지하고 이에 따른 처리를 수행하기 위한 세 가지 옵션입니다.
methods
: Vue 인스턴스의 메소드를 정의할 때 사용합니다. 일반적으로 이벤트 핸들러와 같이 동작하며, 해당 메소드를 호출하는 이벤트가 발생하면 실행됩니다.computed
: Vue 인스턴스의 계산된 속성을 정의할 때 사용합니다. 데이터를 기반으로 계산되며, 응용 프로그램에서 특정 값이 변경될 때 자동으로 다시 계산됩니다.watch
: Vue 인스턴스의 속성을 감시하고 이에 대한 처리를 수행할 때 사용합니다. 속성의 값이 변경되면 즉시 수행되며, 비동기식 처리도 가능합니다.각 옵션의 사용 예시를 간단히 설명하면 다음과 같습니다.
methods
: 버튼 클릭과 같은 이벤트 핸들러를 정의할 때 사용합니다. 다음 예시는 버튼 클릭시 메시지를 출력하는 메소드를 정의하는 방법입니다.methods: {
showMessage: function() {
alert('Hello, Vue!');
}
}
computed
: 데이터를 계산하여 반환하는 계산된 속성을 정의할 때 사용합니다. 다음 예시는 이름과 나이를 결합하여 전체 이름을 반환하는 계산된 속성을 정의하는 방법입니다.computed: {
fullName: function() {
return this.firstName + ' ' + this.lastName;
}
}
watch
: 속성의 값 변화를 감시하고 처리하는 방법을 정의할 때 사용합니다. 다음 예시는 name
속성이 변경될 때마다 sayHello
메소드를 실행하는 방법입니다.watch: {
name: function() {
this.sayHello();
}
},
methods: {
sayHello: function() {
alert('Hello, ' + this.name + '!');
}
}
new Vue({
data:{
message: [1,2,3,4,5]
}
watch: {
message: {
handler(newMessage, oldMessage){
console.log("현재 바뀐 데이터", newMessage);
console.log("이전 데이터", oldMessage);
},
deep: true,
}
}
})