inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

ref와 computed의 차이를 잘 모르겠어요

해결된 질문

797

jhreplay.lee

작성한 질문수 8

0

안녕하세요.

이번 강의 실습하다가 수업 내용처럼 preview가 업데이트 안되길래 원인을 찾다보니 아래 부분이 문제였는데요.

// 강사님 코드
const url = computed(() => `/posts/${props.id}`);
const { error, loading, data: post } = useAxios(url);
// 제 코드
const url = ref(`/posts/${props.id}`);
const { error, loading, data: post } = useAxios(url);

지금까지 진행하고 너무 기초적인 질문인 것 같긴한데 computed는 반응형으로 동작하고 ref는 동작하지 않는 이유를 잘 모르겠습니다.

vue.js

답변 1

2

짐코딩

안녕하세요 🙂

props.id 가 외부에서 변경되었을때

// 강사님 코드
const url = computed(() => `/posts/${props.id}`);
const { error, loading, data: post } = useAxios(url);

위 코드는 computed로 url을 선언하였기 때문에 props.id 의 변화에 반응하여 url값은 변경(다시 계산)됩니다.

하지만

// 제 코드
const url = ref(`/posts/${props.id}`);
const { error, loading, data: post } = useAxios(url);

위 코드는 단순히 초기값을 할당한 것이기 때문에 props.id 의 값에 url값은 변경(다시 계산)되지 않습니다.

위 설명을 듣고 이해가 어렵다면 computed 학습을 다시한번 살펴보시는 것을 권장드립니다. 💪

질문드립니다.

0

29

0

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

0

32

2

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

0

28

1

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

0

27

1

질문드립니다.

0

28

2

라우터 인스톨 후 실행안됨

1

47

2

코드 자동 포매팅 질문

0

67

2

필터 watchEffect 질문입니다.

0

50

1

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

0

111

1

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

0

68

2

unplugin-vue-components

0

79

2

TypeError 질문

0

49

1

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

1

53

1

hash 모드 배포의 필요성?

0

59

2

.eslintrc.cjs 가 없습니다

0

95

2

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

0

97

3

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

0

63

1

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

0

69

2

중첩된 컴포넌트 문제

0

74

2

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

0

109

2

useAxios Proxy(Object) RefImpl

0

113

1

axios timeout

0

324

3

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

0

121

2

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

0

167

2