코드의 양이 많고 복잡한 코드를 간단하게 정리해줄 수 있다.
<template>
<div @click="increase">
{{ count }}
</div>
</template>
<script>
export default {
data() {
return{
count:0
}
},
methods : {
increase() {
this.count +=1
}
}
}
</script>
이 코드를 컴포지션해서 작성하면 다음과 같이 작성할 수 있다.
<template>
<div @click="increase">
{{ count }}
</div>
</template>
<script>
import {ref} from 'vue'
export default {
setup(){
let count = ref(0)
function increase() {
count.value +=1
}
return {
count,
increase
}
}
}
</script>
<template>
<h1 @click="increase">
{{ count }} / {{ doubleCount }}
</h1>
<h1 @click="changeMesaage">
{{ message }} / {{ reversedMessage }}
</h1>
</template>
<script>
export default {
data() {
return {
count : 0,
message:'Hello world!'
}
},
computed: {
doubleCount() {
return this.count*2
},
reversedMessage(){
return this.message.split('').reverse().join('')
}
},
watch: {
message(newValue) {
console.log(newValue)
}
},
created(){
console.log(this.message)
},
mounted(){
console.log(this.count)
},
methods: {
increase() {
this.count +=1
},
changeMessage() {
this.message='Good?!'
}
}
}
</script>
컴포지션API 전
<template>
<h1 @click="increase">
{{ count }}
</h1>
<h1 @click="changeMesaage">
{{ message }}
</h1>
</template>
<script>
import {ref,computed,watch,onMounted} from 'vue'
export default {
setup() {
const count =ref(0)
const doubleCount = computed(() => {
return count.value*2
})
const message = ref('Hello world!')
const reversedMessage = computed(() => {
return message.value.split('').reverse().join('')
})
watch(message, newValue => {
console.log(newValue)
})
function increase() {
count.value +=1
}
function changeMesaage() {
message.value='Good?!'
}
console.log(message.value)
onMounted(()=> {
console.log(count.value)
})
return {
count,
message,
increase,
changeMesaage,
doubleCount,
reversedMessage,
}
}
}
</script>
컴포지션API 후
'vue.js' 카테고리의 다른 글
vue Bootstrap (0) | 2021.11.09 |
---|---|
vue Router (0) | 2021.11.09 |
vue 문법 [컴포넌트] (0) | 2021.11.08 |
vue 문법[v-model] (0) | 2021.11.07 |
vue3 문법 [이벤트 핸들링] (0) | 2021.11.07 |