Vue 3의 ref
와 reactive
는 둘 다 Vue로 상태 관리를 할 때 사용하는 반응형 상태 관리 도구이지만, 사용 용도와 작동 방식에서 차이가 있습니다. 아래에서 각각의 공통점, 차이점, 장점 그리고 단점을 살펴보겠습니다.
ref
와 reactive
모두 데이터가 변경될 때 컴포넌트를 자동으로 다시 렌더링한다는 점에서 동일합니다.데이터 타입:
ref
: 원시 타입(예: 문자열, 숫자, 불리언)을 포함한 모든 종류의 데이터를 다룰 수 있도록 설계되었습니다. 또한 객체와 배열을 다룰 때도 사용할 수 있습니다.reactive
: 객체나 배열과 같은 복합 데이터를 다루는데 더 적합합니다. 참조 방식:
ref
: 변수에 .value
프로퍼티를 통해 접근해야 합니다. const count = ref(0);
count.value++;
reactive
: 변수에 직접 접근할 수 있습니다.const state = reactive({ count: 0 });
state.count++;
복사와 깊은 반응형:
ref
: 단일 값의 반응형 업데이트를 가지고 객체와 배열 사용시 reactive를 자동으로 매핑해줘서 내부도 반응형 업데이트를 보장해준다.reactive
: 복합 데이터 구조 전체를 깊이 있게 반응형으로 만듭니다.reactive
가 자연스럽게 반응형 상태로 유지합니다..value
프로퍼티를 통해 접근해야 하므로 코드가 다소 장황해질 수 있습니다.ref
를 사용합니다.reactive
를 선택합니다.