티스토리 뷰
728x90
Vue3에서는 reactive와 ref 를 사용해 반응형 상태 (Reactive State)를 관리함
이 두 기능은 비슷하지만 사용 목적과 방식에 차이가 있음
아래에서 각 기능의 차이와 언제 사용하는 것이 좋은지 알아보겠음
1. ref란?
단일 값 또는 원시 데이터 타입 (string, number, boolean 등)을 반응형으로 관리할 때 사용
객체, 배열도 ref로 감쌀 수 있지만, 이 경우 내부 속성에 직접 접근하려면 .value가 필요
import { ref } from 'vue'
const count = ref(0) // 숫자 값을 반응형으로 관리
count.value++ // ref는 .value로 접근해야 함
console.log(count.value) // 1
.value로 접근해야만 값에 접근할 수 있음
원시 타입이나 단일 값을 반응형으로 관리할 때 적합
객체나 배열도 ref로 감쌀 수 있지만, .value를 계속 사용해야 하므로 코드가 복잡해질 수 있음
2. reactive란?
객체(Object)나 배열(Array)과 같은 복합 데이터 타입을 반응형으로 관리할 때 사용
객체 속성에 직접 접근해서 읽거나 쓸 수 있음 (즉, .value가 필요하지 않음)
import { reactive } from 'vue'
const state = reactive({
count: 0,
message: 'Hello'
})
state.count++ // .value 없이 직접 접근 가능
console.log(state.count) // 1
console.log(state.message) // 'Hello'
객체와 배열에 적합한 반응형 상태 관리
.value 없이 객체 속성에 직접 접근 가능
내부적으로 Vue가 Proxy로 감싸서 반응성을 제공
3. ref와 reactive의 차이

요약
- ref는 단일 값(숫자, 문자열 등)을 다룰 때 적합하며, .value로 접근해야 한다.
- reactive는 객체나 배열과 같은 복합 데이터를 다룰 때 더 적합하며, .value 없이 속성에 직접 접근할 수 있다.
- 둘의 차이점은 사용 대상과 접근 방식에 있다. 적절한 상황에 맞게 두 가지를 혼합하여 사용하면 반응형 상태 관리가 더욱 효과적이다.
728x90
'Web Development > vue' 카테고리의 다른 글
| [콜럼Vue스] 비동기 컴포넌트 (Async Component) (1) | 2024.10.16 |
|---|---|
| [콜럼Vue스] 텔레포트 (Teleport) (1) | 2024.10.16 |
| 전체선택/해제 함수 구조 분석 (0) | 2024.10.15 |
| [콜럼Vue스] 컴포넌트에서의 v-model 디렉터브 (2) | 2024.10.15 |
| [콜럼Vue스] provide, inject를 이용한 공용데이터 사용 (0) | 2024.10.15 |
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 자연어처리
- PROMISE
- gradientclipping
- 인스턴스 구조
- 리액트 폴더구조
- 컴포넌트간데이터전달
- AI
- 코랩 워드클라우드 한글깨짐
- 이벤트에미터
- 사용자정의이벤트
- 프론트엔드
- dl
- 사전학습모델
- 데이터옵션
- 인스턴스 옵션
- 코랩 한글깨짐
- 리액트
- 코랩 워드클라우드
- 인스턴스 생명주기
- defaultparameter
- KoELECTRA
- Await
- 콜백callback
- ML
- NLP
- 이벤트유효성
- async
- 컴포넌트간통신
- transformer
- 로짓함수
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함