inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"

toRef & toRefs 기초부터 활용까지 한방에!

toRef 예시와 관련하여

454

뭉개

작성한 질문수 4

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

안녕하세요 짐코딩님,

제가 어디서부터 어떻게 이해를 잘 못하고 있는건지 모르겠으나,

어느 순간부터 머리가 꼬여 정리가 되지 않아 질문 남깁니다 ㅠㅠ ,,

 

현재 코드를 보면 설명해주신 듯이

 

PostDetailView에서

const idRef = toRef(props, 'id');

const { isOdd } = useNumber(idRef );

를 통해 반응형으로 넘겨주는데요,

 

반응형으로 넘겨주는 이유를 모르겠습니다.

어차피 composable 함수인 number 내에서 unref로 까서 사용하고,

compute로 다시 반응형을 return해준다고 생각되는데요 ,,

 

왜 반응형을 넘겨주지 않으면 정상적으로 동작하지 않는 건가요 ..!?

vue.js

답변 1

0

짐코딩

안녕하세요 :)

음... 우선 comuted(콜백함수)는 콜백함수내의 반응형 변수의 값이 변경되면 값을 다시 할당(계산)하는데요!

import { computed, unref } from 'vue';

export const useNumber = number => {
	const isOdd = computed(() => unref(number) % 2 === 1);
	const isEven = computed(() => !isOdd.value);

	return {
		isOdd,
		isEven,
	};
};

강의 예제처럼 number가 만약 20이라면 isOddfalse일거에요. 그런데 만약에 number19로 바뀐다면 isOddtrue가 재할당되어야 하는데 그대로 false일거에요 왜냐하면 number가 반응형 변수가 아니기 때문이죠! ㅎㅎ

그래서 반응형 변수를 넘김으로써 computed 값을 재할당할 수 있게한거에요. 그 수단으로 toRef 함수를 사용한거고요~!

computed에 대해 한 번 고민해보시면 꼬인 부분을 푸실 수 있을 거 같아요~! ㅎㅎ

1

뭉개

답변 감사합니다 ! 이상한 곳에 꽂혀있었네요 ㅠㅠ

질문드립니다.

0

32

0

unplugin-vue-components 질문드립니다.

0

41

2

강의듣다가 헷갈려서 질문드립니다.

0

35

1

와 짐코딩님 강의 들으면서 느끼는게 많네요.

0

33

1

질문드립니다.

0

33

2

라우터 인스톨 후 실행안됨

1

50

2

코드 자동 포매팅 질문

0

71

2

필터 watchEffect 질문입니다.

0

52

1

json-server 오류가 다른게 뜨네요

0

114

1

미리보기가 안됩니당...

0

70

2

unplugin-vue-components

0

86

2

TypeError 질문

0

53

1

v-model="show" :show="show" 같이 사용?

1

58

1

hash 모드 배포의 필요성?

0

63

2

.eslintrc.cjs 가 없습니다

0

96

2

title,content값이 비어서 저장되는데 제가 혹시 어떤 부분을 잘못 작성했는지 ㅜㅜ 알고싶습니다.

0

98

3

_title_like: "", 문의드려요 해당 값을 설정하면 list가 아에 안나옵니다.

0

65

1

@click.prevent="params._page = pageNum"> 에 .value를 안쓰는 이유가 궁금합니다.

0

73

2

중첩된 컴포넌트 문제

0

76

2

교안에 있는 부분이 아닌가요?

0

109

2

useAxios Proxy(Object) RefImpl

0

114

1

axios timeout

0

334

3

강의와 상관은 없지만, 궁금한 점이 있어 질문드립니다.

0

124

2

컴포넌트 분리 부분에서 오류가 나요ㅠㅠ

0

170

2