inflearn logo
강의

講義

知識共有

Vue3完全マスター:基礎から実践まで - 「基本編」

クラスとスタイル バインディング

reactive와 computed 차이 질문

1108

cogoree

投稿した質問数 3

0

안녕하세요 !

style에 v-bind 예제 실습시 궁금한 점이 생겨 질문드려요. 선생님이 만드신 예제는

style에 바인딩하는 styleObject를 computed 함수를 작성하여 바인딩하여 예제처럼 fontSize를 조절했습니다.

styleObject를 computed가 아닌 reactive로 작성하면 어떻게될지 궁금해서

const styleObject = reactive({

color : 'red',

fontSize: fontSize.value + 'px';

});

 

와 같이 작성후 ref함수로 바인딩된 fontSize 크기를 조절하면 computed와 같이 조절이 될 줄 알았으나

조절이 안되는 것을 확인했습니다.

 

두개 차이점이 무엇이길래 조절이 안되나요?

reactive 매서드를 이용해서 조절할 수는 없나요?

vuejs

回答 1

2

gymcoding

안녕하세요 :)

질문) ref함수로 바인딩된 fontSize 크기를 조절하면 computed와 같이 조절이 될 줄 알았으나 조절이 안되는 것을 확인했습니다.

답변) reactive 함수에 값을 전달시 이 값은 초기값으로 사용됩니다.

const object = reactive({
    fontSize: '14px'
});
// object 반응형 상태에 fontSize 프로퍼티에 단순히 14px 문자열 초기값을 할당함.

아래 코드도 마찬가지로 object 반응형 상태에 object.fontSize 속성에 단순히 14px 문자열 초기값을 할당한 것일 뿐 ref 함수로 선언된 fontSize가 변경 되더라도 object.fontSize는 반응하지 않습니다.

const fontSize = ref(14);
const object = reactive({
    fontSize: fontSize.value + 'px', // 단순히 '14px' 초기값 할당한 것
});

하지만 computed 속성은 함수(콜백함수)내의 반응형 상태가 변경되면 값이 다시 계산되기 때문에 값이 반응하는 것을 확인할 수 있습니다.

const fontSize = ref(14);
const object = computed(() => ({
    fontSize: fontSize.value + 'px',
});
// computed(콜백함수), 콜백함수 내의 반응형 상태가 변경되면 object 값이 다시 계산됩니다.

만약 해당 부분이 헷갈리신다면 [Computed] 해당 강의를 한 번더 보시는 것을 권장드립니다.

(이 답변이면 질문에 대답이 되겠죠? 😄)

감사합니다 🙂

props로 함수를 전달했을 때의 질문입니다!

0

632

1

eslint 세팅 질문 드립니다.

0

1711

2

컴포넌트 이벤트 전파 관련 질문입니다

0

498

1

app-level의 provide한 값을 새로고침시 정상적으로 inject하지 못함.

1

526

1

this.$refs에 값이 들어가는 시점이 언제인가요?

0

830

1

npm run dev 설치중

0

617

2

reactive vs ref... 굳이 reactive를 사용하는 이유가 뭔가요?

1

1945

1

dummy api axios 호출시 cors 에러

0

534

1

19:17 emit 관련 질문

0

568

1

reactive로 선언한 반응형 객체 자체를 바꿨는데 watch 콜백함수가 실행이 안되요

0

568

1

자식 컴포넌트에 input 태그, checkbox 같은 form 태그가 없으면 v-model 안 쓰는건가요?

0

577

1

template내 자바스크립트 표현식 평가 시점은 언제인가요?

0

344

1

App.vue 물결 표시 제거 방법

0

374

1

v-if 질문입니다!

0

555

1

ref vs reactive vs shallowRef

0

652

1

script 태그는 컴포넌트를 처음 가져올때 한번만 실행된다는 게 잘 이해가 안됩니다

1

668

1

이벤트 핸들러로 왜 일반 함수로는 작동이 안 되나요? + console.log도 인식이 안되요

0

343

1

Vue3 Composition API - computed

0

458

1

setup 함수내 문자열 관련 질문입니다.

0

344

2

v-on:click ="" 질문입니다

0

349

1

v-on:click="" 질문입니다

0

234

1

v-for에서 style을 사용하려 할 때

0

373

1

emits사용 이유

1

449

1

eslint 오류표시 질문

0

500

1