props 간략 설명
props는 Vue에서 부모 컴포넌트에서 자식 컴포넌트로 데이터 전달을 하기 위해 사용되는 문법임
자식 컴포넌트에 데이터를 전송하면 자식 컴포넌트에서 해당 데이터를 사용할 수 있게 됨
Vue.js 데이터 전송 : 부모 -> 자식(props) 사용법
부모 컴포넌트 -> 자식 컴포넌트
데이터 전송을 위한 props 3스텝
① 보내고 (export) ② 등록하고 (import) ③ 쓰면 됨
① 부모 컴포넌트
// Vue.app
<Card :productsData="productsData" /> // 태그:작명 = "하단의 데이터 이름"
<Card :임의로 작명 = "하단 데이터 이름">
② 자식 컴포넌트
// Card.vue
export default {
name : 'cardComponent',
props : {
productsData : Array, // 작명한 데이터명 : 자료형
}
}
props에 부모 컴포넌트에서 작명했던 { 데이터명 : 자료형 } 입력
③ 부모 컴포넌트
// Vue.app
components:{
Discount : Discount,
Modal : Modal,
Card : Card, //
},
props 다양한 데이터 유형 전달 하기
<Card :데이터명="[1,2,3]"> // 배열 데이터 전달
<Card :데이터명="{age:20}"> // 객체 데이터 전달
<Card :데이터명="100"> // 숫자 데이터 전달
<Card 데이터명="ㅎㅇ"> // 문자 데이터 전달
배열, 객체, 숫자, 문자열과 같은 다양한 데이터 유형을 전달할 수 있음
단 불리언(true/false) 값은 문자열로 전달해야 함. 불리언 값은 문자열로 반환하면 사용할 수 있음
- props는 읽기 전용 데이터(read-only)로 취급. 수정하면 에러 뜸
배열 데이터를 자식 컴포넌트에 전송하려면
// Vue.app
export default {
name: 'App',
data(){
return {
fruits: ["사과", "바나나", "딸기", "포도"], // Array 자료
}
},
// Vue.app
<fruitsBox :items="fruits" />
<자식 :작명="하단에 정의된 배열명">
- 작명은 자식 컴포넌트에서 사용할 데이터 이름이고 임의로 작성 가능
- 배열명은 하단에 정의된 배열의 이름을 붙이면 됨
오브젝트 데이터를 자식 컴포넌트에 전송하려면
// Vue.app
export default {
name: 'App',
data(){
return {
Person : { name:'kim', age:20 }, // 오브젝트 자료
}
},
// Vue.app
<Card :이름="Person.name" :나이="Person.age" />
<자식 :작명="오브젝트명.속성" :작명="오브젝트명.속성">
- 작명은 자식 컴포넌트에서 사용할 데이터 이름이고 임의로 작성 가능
- Object 자료형에서 원하는 속성만 전송하고 싶으면 이렇게 전송하면 될 듯
// Vue.app
<Card v-bind="Person" /> // Object 데이터를 한번에 전송
<자식 v-bind="오브젝트명"/>
- Object 자료형을 통째로 전송하고 싶으면 이렇게 전송하면 될 듯
위 예시에서 결과적으론 Object 자료형의 데이터가 모두 전송됨
'Web :: Framework > Vue.js' 카테고리의 다른 글
| [Vue 기초] 데이터 바인딩, v-for, 이벤트 리스너 추가하는 법 (1) | 2023.10.23 |
|---|---|
| [Vue 에러] vue : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Users\User\AppData\Roaming\npm\vue.ps1 파일을 로드할 수 없습니다. (0) | 2023.10.19 |
| 컴포넌트 import error vue/multi-word-component-names 해결법 (0) | 2023.09.20 |
| npm 수정 권한 오류 [npm ERR! code EACCES] (0) | 2023.09.20 |
| vue cli 설치 npm 오류 해결법 (0) | 2023.09.17 |