Vue/컴포지션 API

컴포지션 API - 기본 옵션과 라이프 사이클

IT Blue 2021. 7. 22. 02:12

 

예제

 

App.vue

<template>
  <h1 @click="increase">
    {{ count }} / {{ doubleCount }}
  </h1>
  <h1 @click="changeMessage">
    {{ message }} / {{ reversedMessage }}
  </h1>
</template>
<script>
export default {
  data() {
    return {
      count: 0,
      message: 'Hello World!'
    }
  },
  watch: {
    message(newValue) {
      console.log(newValue)
    }
  },
  computed: {
    doubleCount() {
      return this.count * 2
    },
    reversedMessage() {
      return this.message.split('').reverse().join('')
    }
  },
  created() {
    console.log(this.message)
  },
  mounted() {
    console.log(this.count)
  },
  methods: {
    increase() {
      this.count += 1
    },
    changeMessage() {
      this.message = 'Good?!'
    }
  }
}
</script>

 

App.Composition.vue

<template>
  <h1 @click="increase">
    {{ count }} / {{ doubleCount }}
  </h1>
  <h1 @click="changeMessage">
    {{ message }} / {{ reversedMessage }}
  </h1>
</template>
<script>
import { ref, computed, watch, onMounted } from 'vue'

export default {
  setup() {
    const count = ref(0)
    const doubleCount = computed(() => count.value * 2)
    function increase() {
      count.value += 1
    }

    const message = ref('Hello World!')
    const reversedMessage = computed(() => {
      return message.value.split('').reverse().join('')
    })
    watch(message, newValue => {
      console.log(newValue)
    })
    function changeMessage() {
      message.value = 'Good?!'
    }
    console.log(message.value)
    
    onMounted(() => {
      console.log(count.value)
    })

    return {
      count,
      doubleCount,
      increase,
      message,
      changeMessage,
      reversedMessage   
    }
  }
}
</script>

 


 

참고

https://v3.ko.vuejs.org/guide/composition-api-lifecycle-hooks.html

 

라이프사이클 훅 | Vue.js

라이프사이클 훅 이 가이드는 이미 Composition API Introduction와 Reactivity Fundamentals를 읽었다고 가정합니다. Composition API를 처음 사용하는 경우 먼저 읽어보십시오. 라이프사이클 훅에 접두사 "on"을 추

v3.ko.vuejs.org