계산된 속성 | Vue.js

기본 예제

템플릿 내 표현식은 매우 편리하지만, 간단한 작업을 위한 것이다.

const author = reactive({
  name: 'John Doe',
  books: [
    'Vue 2 - Advanced Guide',
    'Vue 3 - Basic Guide',
    'Vue 4 - The Mystery'
  ]
})
<p>책을 가지고 있다:</p>
<span>{{ author.books.length > 0 ? 'Yes' : 'No' }}</span>

따라서, 반응형 데이터를 포함하는 복잡한 논리의 경우, 계산된 속성을 사용하는 것이 좋다!

<script setup>
import { reactive, computed } from 'vue'

const author = reactive({
  name: 'John Doe',
  books: [
    'Vue 2 - Advanced Guide',
    'Vue 3 - Basic Guide',
    'Vue 4 - The Mystery'
  ]
})

// 계산된 ref
**const publishedBooksMessage = computed(() => {
  return author.books.length > 0 ? 'Yes' : 'No'
}**)
</script>

<template>
  <p>책을 가지고 있다:</p>
  <span>{{ **publishedBooksMessage** }}</span>
</template>

계산된 캐싱 vs 메서드