반응형
Vue.js에서 소품 데이터를 다른 컴포넌트에 올바르게 전달하는 방법
간단한 카드 컴포넌트 CustomCard.vue를 생성하여 HomeComponent에서 재사용하려고 합니다.지정된 데이터가 포함된 vue 페이지에 루프를 생성하여 필요한 데이터를 저장했습니다.cards: []
왜 안 되는지 모르겠어요.페이지에는 3개의 요소가 표시되지만 이 요소들은 컴포넌트의 디폴트값으로 표시됩니다.cards:[]
.
홈 컴포넌트vue:
...
<custom-card v-for="n in cards" :key="n">
<img :src="n.cardImage" alt="">
<p>{{n.cardDesc}}</p>
</custom-card>
...
<script>
export default {
data() {
return {
cardImage: "",
cardDesc: "",
cards: [
{id: "1", cardImage: "../src/assets/img1.jpg", cardDesc: "some description 1"},
{id: "2", cardImage: "../src/assets/img2.jpg", cardDesc: "some description 2"},
{id: "3", cardImage: "../src/assets/img3.jpg", cardDesc: "some description 3"}
]
}
}
}
</script>
커스텀 카드vue:
<template>
<div>
<img :src="cardImage" alt="">
<p>{{cardDesc}}</p>
</div>
</template>
<script>
export default {
data () {
return {
cardImage: "../src/assets/default.jpg",
cardDesc: "default description text"
}
}
// props: ['cardDesc', 'cardImage']
}
</script>
다음 값을 플레이스홀더로서 기본 컴포넌트 값으로 합니다(그래서 컴포넌트 데이터에 넣습니다).
cardImage: "../src/assets/default.jpg",
cardDesc: "default description text"
소품을 돌리면 오류가 발생합니다.[Vue warn]: The data property "cardImage" is already declared as a prop. Use prop default value instead.
그래서 일단 댓글을 달았어요.
CustomCard.vue를 index.js로 글로벌하게 등록했습니다.
컴포넌트에는 슬롯이 없기 때문에 콘텐츠를 포함할 필요가 없습니다.
내가 보기엔 넌 그냥...
<custom-card v-for="card in cards" :key="card.id"
:card-desc="card.cardDesc"
:card-image="card.cardImage" />
주의:key
는 반복 가능한 각 요소의 실제 고유 식별자로 설정됩니다.
물론 코멘트를 해제해야 합니다.props
선언 및 충돌 제거data
컴포넌트에서 키를 가져옵니다.에러 메시지에 기재되어 있듯이, 디폴트치를 설정할 수도 있습니다.
export default {
props: {
cardDesc: {
type: String,
default: 'default description text'
},
cardImage: {
type: String,
default: '../src/assets/default.jpg'
}
},
data () { // probably don't even need a data property
return {}
}
}
언급URL : https://stackoverflow.com/questions/48000050/how-to-pass-the-props-data-to-another-component-correctly-in-vue-js
반응형
'programing' 카테고리의 다른 글
검증 규칙을 필드에 프로그래밍 방식으로 첨부합니다. (0) | 2022.07.29 |
---|---|
vue-router before 각 함수가 업데이트된 항목을 반환하지 않음 (0) | 2022.07.29 |
Vue가 vuex에서 가져오는 내 개체의 업데이트를 보지 못함 (0) | 2022.07.29 |
Mockito는 모든 클래스 인수와 일치합니다. (0) | 2022.07.28 |
Vue-router가 페이지를 새로고침하면 상태가 상실됩니다.이 문제를 회피하려면 어떻게 해야 합니까? (0) | 2022.07.28 |