몽땅뚝딱 개발자

[Vue.js] Vue3의 Composition API 본문

Development/Vue.js

[Vue.js] Vue3의 Composition API

레오나르도 다빈츠 2022. 4. 13. 17:10

 

0) setup()

setup()은 beforeCreate 이전에 호출되는 것이며, this를 사용할 수 없다.

첫번째인자: _, props

두번째인자: { emit, root, refs } ...

 

1) reactive()

  • 객체만 받을 수 있다.
  • deep 서치가 가능하다.
  • 접근할 때 [.value]가 아니라 [변수이름.key]로 접근한다.
  • return시 ...refs([변수이름])을 사용한다.

 

2) ref()

  • reactive와 달리 원시타입을 모두 받을 수 있다.
  • 원시값을 'value’라는 key로 감싸 객체를 반환시킨다. 따라서 원본 값은 ref 객체의 value 속성을 통해 접근할 수 있으며, 값을 변경할 때에도 value 속성에 접근하여 조작한다.
  • ref()로 선언한 변수를 setup()안에서 사용할 때는 value 프로퍼티에 접근해야하지만, return 키워드로 반환할 때는 자동으로 래핑이 해제되어 value 프로퍼티를 사용하지 않아도 된다.
<template>
  // 여기서는 value를 붙이지 않아도 된다.
  <div>{{ count }}</div>
</template>

<script>
import { ref } from 'vue'

export default {  
  setup() {
    const count = ref(0)
    console.log(count.value)

    return {
      count
    }
  }
}
</script>

 

💡 ref vs reactive

기능은 똑같기 때문에 코드 가독성을 위해 한가지만을 선택하여 사용하는게 좋다고 한다.

 

 

3) isRef(): ref가 어떤 값인지 확인한다.

 

4) toRefs(): reactive -> ref로 변환

 

5) toRef(): 소스가 되는 reactive 객체의 속성을 가져와 ref를 만들 수 있다.

이 때 새로 생성한 것이 아니라 참조한 것이기 때문에 원본 객체에 대해 리액티브 연결을 유지할 수 있다.

const state = reactive({
   foo: 1,
   bar: 2
})

const fooRef = toRef(state, 'foo')

fooRef.value++
console.log(state.foo) // 2

state.foo++
console.log(fooRef.value) // 3

 

 


개인적으로 공부한 내용을 정리하는 블로그로
잘못된 개념을 게시하지않도록 주의하고 있으나 오류가 있을 수 있습니다.

 

 

Comments