inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Teleport 컴포넌트 : Modal 만들기

modalTitle.value = title; 에서 title은 어디서 받아오는거죠?

225

소연

작성한 질문수 3

0

이렇게 작성하고

<div class="col-3 text-muted">제목 :</div>
<div class="col-9">{{ modalTitle }}</div>

이렇게 작성했는데요,

const modalTitle = ref('');
const openModal = ({ title }) => {
	show.value = true;
	modalTitle.value = title;
};

(content, createdAt은 생략했어요)

openModal에서 받아오는 title이

어디서 나오는 건지 모르겠어요.

정상적으로 작동은 되는데 저 부분이 이해가 안돼서요..

title 같은 data들은 fetchPosts() 에서 받아올 때 posts에 넣었으니

modalTitle.value = posts.value.title 이어야 할 것 같은데 왜 이렇게 작성하면 오류가 나고 title만 작성해야 title 데이터가 잘 들어오는건가요..??

vue.js

답변 1

0

짐코딩

안녕하세요 :)

Q1) "modalTitle.value = posts.value.title 이어야 할 것 같은데..."

A) 우선 posts는 배열입니다. 배열에서 특정 순번(인덱스, index)에 있는 title을 가져오려면 posts.value[0].title 과 같이 특정 아이템에 접근해서 가져와야 합니다.

Q2) openModal에서 받아오는 title이 어디서 나오는 건지 모르겠어요.

A) openModal 호출하는 코드를 보시면 openModal(item) 특정 아이템을 넘기는 것을 확인할 수 있을거에요. 위 답변(Q1)에서 말씀드렸듯이 특정 아이템(item)에서 title을 가져올 수 있습니다.

Q3) 구조분해할당

혹시 openModal = ({ title }) = { ... } 해당 코드에서 ({ title }) 문법에 대해 잘 모르신다면 구조분해할당(객체 구조 분해) 문법을 한번 보시는 것을 권장드립니다.

감사합니다 🙂

 

질문드립니다.

0

32

0

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

0

40

2

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

0

35

1

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

0

33

1

질문드립니다.

0

33

2

라우터 인스톨 후 실행안됨

1

50

2

코드 자동 포매팅 질문

0

68

2

필터 watchEffect 질문입니다.

0

52

1

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

0

114

1

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

0

69

2

unplugin-vue-components

0

85

2

TypeError 질문

0

52

1

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

1

57

1

hash 모드 배포의 필요성?

0

62

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

330

3

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

0

124

2

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

0

169

2