-
컴포지션 APIVue/컴포지션 API 2021. 7. 20. 18:45
예제
App.vue
<template> <h1 @click="increase"> {{ count }} / {{ doubleCount }} </h1> <h1> {{ message }} / {{ reversedMessage }} </h1> </template>
<script> export default { data() { return { message: 'Hello world!', count: 0 } }, computed: { doubleCount() { return this.count * 2 }, reversedMessage() { return this.message.split('').reverse().join('') } }, methods: { increase() { this.count += 1 } } } </script>
코드 이해하기
<h1 @click="increase"> {{ count }} / {{ doubleCount }} </h1>
- 해당 h1 태그를 클릭하면 increase() 메소드 동작
- count 횟수를 +1 증가
- count 에 변화가 생겼으므로 doubleCount 동작
- doubleCount 는 count * 2 증가
<h1> {{ message }} / {{ reversedMessage }} </h1>
- {{ message }} 는 message: 'Hello world!' 를 출력
- reversedMessage() 는 해당 message 를 반전시켜줌
특정한 부분을 해석하기 위해서 많은 노력이 필요
vue.js 에서 제공하는 컴포지션API 를 사용하면 해석하기 좋은 형태로 만들어 줄 수 있다
컴포지션 API 리팩토링
App.vue
<template> <h1 @click="increase"> {{ count }} / {{ doubleCount }} </h1> <h1> {{ message }} / {{ reversedMessage }} </h1> </template>
<script> import { ref, computed } from 'vue' export default { setup() { const message = ref('Hello World') const reversedMessage = computed(() => { return message.value.split('').reverse().join('') }) const count = ref(0) const doubleCount = computed(() => count.value * 2) function increase() { count.value += 1 } return { message, reversedMessage, count, doubleCount, increase } } } </script>
컴포지션 API를 통해서 깔끔하게 정리를 할 수 있다
참고
https://v3.ko.vuejs.org/guide/composition-api-introduction.html
소개 | Vue.js
소개 컴포지션 API가 필요한 이유 Vue 컴포넌트를 만들면 재사용 가능한 코드 조각으로 결합되어진 인터페이스의 반복가능한 부분들을 추출할 수 있습니다. 이것만으로도 어플리케이션에서 유지
v3.ko.vuejs.org
'Vue > 컴포지션 API' 카테고리의 다른 글
컴포지션 API - props, context (0) 2021.07.22 컴포지션 API - 기본 옵션과 라이프 사이클 (0) 2021.07.22 컴포지션 API - 반응형 데이터 (반응성) (0) 2021.07.20