패스잇
프론트엔드 개발 · 중급

Vue 3 Composition API에서 'ref'와 'reactive'는 반응형 데이터를 생성하는 데 사용됩니다. 이 두 함수의 주요 차이점은 무엇이며, 각각 어떤 상황에서 사용하는 것이 더 적절한지 구체적인 예시와 함께 설명해주세요.

힌트 · ref는 원시 값과 객체 모두를 래핑하며, .value로 접근합니다. reactive는 객체에만 사용되며 프록시로 동작하고 .value 없이 직접 접근합니다.

원시값객체반응성 추적깊은 반응성템플릿 자동 언래핑

모범답안

네, Vue 3 Composition API에서 ref와 reactive는 모두 반응형 데이터를 만드는 데 사용되지만, 몇 가지 중요한 차이점이 있습니다.

가장 큰 차이점은 ref는 원시 타입 값(숫자, 문자열, 불리언 등)과 객체 모두를 감쌀 수 있다는 점입니다. ref로 생성된 반응형 데이터에 접근하거나 값을 변경하려면 .value를 사용해야 합니다. 반면, reactive는 객체에만 사용 가능하며, 객체의 속성에 직접 접근하여 값을 변경할 수 있습니다. reactive는 객체를 프록시로 감싸 깊은 반응성을 제공합니다.

어떤 것을 사용할지는 데이터의 형태와 사용 방식에 따라 결정됩니다. 예를 들어, 단순한 숫자나 문자열 값을 반응형으로 관리해야 한다면 ref를 사용하는 것이 적절합니다. 컴포넌트의 카운터를 예로 들 수 있습니다. 반면, 여러 속성을 가진 객체의 반응성을 관리해야 한다면 reactive를 사용하는 것이 더 편리합니다. 사용자 정보 객체와 같이 여러 속성을 한 번에 관리해야 할 때 유용합니다.

템플릿에서는 ref로 생성된 값은 자동으로 언래핑되므로 .value 없이 직접 사용할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Vue.js / Nuxt 면접 질문

← Vue.js / Nuxt 면접 질문 전체 보기