프로젝트가 굉장히 커지면 관련된 데이터들의 정의된 부분과 함수들을 찾기가 매우 힘들어진다.
하나의 methos 에도 굉장히 많은 함수가, computed 안에도 뒤죽박죽으로 섞여있을 수 있기 때문이다.
이를 해석하기 좋은 형태로 개선 시킬 수 있다.
관련 있는 동작과 데이터끼리 모아놓을 수 있다.
// 기존 방식
<template>
<h1 @click="increase">
{{ count }} / {{ doubleCount }}
</h1>
<h1>
{{ message }} / {{ reverseMessage }}
</h1>
</template>
<script>
export default {
data() {
return {
message: 'Hello world',
count: 0
}
},
computed: {
dobleCount() {
return this.count * 2
},
reverseMesasge() {
return this.message.split('').reverse().join('')
}
},
methods: {
increse() {
this.count += 1
}
}
}
</script>
// Composition vue
<template>
<h1 @click="increase">
{{ count }} / {{ doubleCount }}
</h1>
<h1>
{{ message }} / {{ reversedMessage }}
</h1>
</template>
<script>
import { ref, computed } from 'vue'
export default {
setup() {
**// message 관련**
const message = ref('Hello World!')
const reversedMessage = computed(() => {
return message.value.split('').reverse().join('')
})
**// count 관련**
const count = ref(1)
const doubleCount = computed(() => count.value * 2)
function increse() {
count.value += 1
}
return {
message,
reversedMessage,
count,
doubleCount,
increse
}
}
}
</script>