Development/Vue.js
[Vue.js] Computed 속성
Rosie, Lee
2021. 10. 1. 23:45
Vue.js의 공식 문서를 참고하여 정리합니다.
Computed 속성과 Watch | Vue.js
Computed 속성과 Watch Computed 속성 템플릿 내에 표현식을 넣으면 편리하지만, 간단한 연산을 위한 부분입니다. 템플릿 안에서 너무 많은 연산을 하면 코드가 비대해지고 유지보수가 어렵습니다. 중
v3.vuejs-korea.org
Computed
계산된 데이터를 말합니다.
template에 바로 넣기보다는 computed 속성을 활용하여 계산된 데이터들을 넣어서 사용해주면 유지보수가 쉽습니다.
먼저, Num 컴포넌트를 생성한 후, App.vue파일에 불러와줍니다.
App.vue 파일
<template>
<Num/>
</template>
<script>
import Num from './components/Num.vue'
export default {
components: {
Num: Num
}
}
</script>
<style>
</style>
그리고 기존 방식과 같이 template에 조건문(v-if)을 바로 추가하였습니다.
Num.vue 파일
<template>
<section>
<h1 v-if="nums.length > 0">Numbers</h1>
<ul>
<li
v-for="num in nums"
:key="num">
{{ num }}
</li>
</ul>
</section>
</template>
<script>
export default {
data(){
return {
nums: [
'1', '2', '3'
]
}
}
}
</script>
<style scoped>
</style>
위 방식을 computed 속성을 사용하여 변경해보겠습니다.
Num.vue 파일
<template>
<section>
<h1 v-if="hasNum">Numbers</h1>
<ul>
<li
v-for="num in nums"
:key="num">
{{ num }}
</li>
</ul>
</section>
</template>
<script>
export default {
data(){
return {
nums: [
'1', '2', '3'
]
}
},
computed: {
hasNum() {
return this.nums.length > 0
}
}
}
</script>
<style scoped>
</style>
반응형