Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- vue.js
- 리액트
- NonNullable
- 성능최적화
- const 단언문
- typescript
- React.js
- 레이아웃쪼개기
- react
- 타입좁히기
- 개발콘텐츠
- 2022
- React Native
- 누구나 자료구조와 알고리즘
- Chart.js
- click and drag
- returnType
- utilty type
- 반복줄이기
- javascript
- CSS
- 제네릭
- JS console
- 공통컴포넌트
- 티스토리꾸미기
- 폰트적용하기
- 커스텀
- reactjs
- 타입스크립트
- TSDoc
Archives
- Today
- Total
몽땅뚝딱 개발자
[Vue.js] Vue3의 Composition API 본문
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
개인적으로 공부한 내용을 정리하는 블로그로
잘못된 개념을 게시하지않도록 주의하고 있으나 오류가 있을 수 있습니다.
'Development > Vue.js' 카테고리의 다른 글
[Vue.js] Vue3 - defineProps() & defineEmits() (0) | 2022.06.08 |
---|---|
[Vue.js] 비트(Vite)란? (작성 중) (0) | 2022.06.04 |
모킹 모듈(mocking module) 사용하기 / axios-mock-adapter-path-params (0) | 2022.03.25 |
[Vue.js] mac에서 node 버전 변경 / nvm (0) | 2022.02.25 |
[Vue.js] filter 사용하기 (0) | 2022.02.20 |
Comments