Hyunjung Im

Vue 컴포넌트는 Options API와 Composition API 두 가지 스타일로 작성할 수 있다.

Options API

script 태그 내부에 export default 객체를 export 하여 사용한다. 옵션으로 정의된 속성은 컴포넌트 인스턴스를 가리키는 함수 내부의 this에 노출되어, this로 접근하여 사용한다.

<script>
  export default {
    data() {
      //...
    },

    methods: {
      //...
    },

    mounted() {
      //...
    },
  }
</script>

Composition API

script 태그에 setup 속성과 함께 사용한다. <script setup> 좀 더 자유로운 형식으로 사용할 수 있다.

<script>
  import { ref, onMounted } from 'vue'

  const count = ref(0)

  const methods1 = () => {
    //...
  }

  onMounted(() => {
    //...
  })
</script>

컴포지션 API에서 props 사용하기

defineProps

<!-- ts 사용방식 -->
<script setup lang="ts">
  defineProps({
    title: String,
    likes: Number,
  })
</script>
<!-- ts 사용방식 -->
<script setup lang="ts">
  defineProps<{
    title?: string
    likes?: number
  }>()
</script>

withDefaults

컴포지션 API에서 vuex 사용하기 ; createNamespacedHelpers