작성
·
641
0
제가 반응형 데이터에 대한 이해가 부족한 거일수도 있지만
const로 작성을 하면 상수 취급이 되어서 데이터를 한번 선언하면 변경할수 없다고 알고 있는데,
vue3에서는 const data = ref('') 또는 const obj = reactive({})등으로 변수 선언을 하더라고요
제가 알던 지식으로는 let data = ref('') 또는 let obj = reactive({})등으로 변수를 선언해야 할거 같은데
const로 반응형데이터를 선언했을때 어떻게 let과 같이 변수의 값이 바뀌는지 궁금합니다.(반응형데이터라서...?)
답변 1
0
안녕하세요 🙂
포인트를 체크해 보자면 반응형 데이터에 대한 이해 보다 자바스크립트 언어에 대한 이해를 우선 체크해 보시는 것을 권장드립니다.
두 가지로 나누어서 답변 드리겠습니다.
질문1) const
로 반응형데이터를 선언했을때 어떻게 let
과 같이 변수의 값이 바뀌는지 궁금합니다.
이 질문에 대한 답변은 우선 Vue와 아무런 관계가 없습니다. 프로그래밍 언어의 Primitive Type vs Reference Type 과 관련이 있습니다. 정리하면 const
는 상수, let
은 변수 맞습니다. 알고계신 것처럼 const
로 선언된 상수는 "값(value)"을 변경할 수 없습니다. 다만 상수에 객체가 할당 되었다면 값은 변경하지 못해도 해당 객체의 속성은 변경할 수 있겠죠?
const obj = { name: 'gymcoding' };
obj.name = 'coding'; // 속성 변경 가능
obj = { name: 'coding' }; // 값의 변경 불가
(PS. 만약 위 답변이 이해가 되지 않는다면 제 자바스크립트 강의 배열, 객체 파트를 보시는 것을 권장드립니다. 유튜브에 무료로 업로드했습니다. 자바스크립트 강의)
질문2) vue3에서는 const data = ref('') 또는 const obj = reactive({})등으로 변수 선언을 하더라고요
이 질문에 대한 답변도 우선 Vue와 아무런 관계가 없습니다. 변수 선언시 const
로 선언하면 값을 변경할 수 없습니다. 그리고 let
을 선언하면 값을 변경할 수 있습니다. (이것은 잘 알고 계실것입니다.)
그러면 여기서 잠시 생각해 보겠습니다.
Vue로 개발시에 변수의 "값(value)"을 변경해야 할 일이 자주 있을까요?
Vue 뿐만 아니라 자바스크립트 프로그래밍시 "값(value)"을 변경해야 할 일이 자주 있을까요?
(참고. 질문1을 제대로 이해하지 않으셨다면 이해가 안될 것입니다)
프로그래밍시에 값을 변경하는일은 많지 않습니다. 아니 변경하면 안되는 경우가 많습니다. 그렇기 때문에 안전상 또는 성능상의 이점을 가져가기 위해 제 코드 스타일상 const
를 사용한 것입니다.
(참고로 저는 자바스크립트 프로그래밍시 var
는 아예 사용안하고, let
은 거의 사용 안하는 것 같아요. 제 스타일이니 참고만해주세요)