JS/vue

[Vue.js] Vue CLI 프로젝트 : props의 활용

isaac.kim 2022. 2. 13. 16:09
728x90
반응형

[Vue.js] Vue CLI 프로젝트 : props의 활용

이전 글

2022.02.12 - [JS & Framework/vue.js] - [Vue.js] Vue.js CLI 프로젝트 : 부모 자식 간의 데이터 전달 Props

2022.02.12 - [JS & Framework/vue.js] - [Vue.js] Vue CLI 프로젝트 : Vuetify Buttons 버튼 사용하기

2022.02.11 - [JS & Framework/vue.js] - [Vue.js] Vue CLI 프로젝트 : 컴포넌트(Component) 등록과 사용

2022.02.11 - [JS & Framework/vue.js] - [Vue.js] Vue CLI 프로젝트 : Vue 파일 공부하기

2022.02.11 - [JS & Framework/vue.js] - [Vue.js] Vue CLI 프로젝트, vuetify 설치하기

2022.02.11 - [JS & Framework/vue.js] - [Vue.js] Vue CLI로 시작하기

 

# Props의 활용 1

이전 글에서 props를 사용해서 부모 컴포넌트에서 자식 컴포넌트로 데이터를 받아올 수 있었습니다. 아래 이미지는 지난 번 코드를 확인하기 위해 캡처한 것입니다. 왼쪽은 부모 App.vue, 오른쪽은 자식 Home.vue 컴포넌트들입니다.

부모 컴포넌트 App.vue에서 nameOfChild 변수의 값에 1을 넣어 보내면, 자식 컴포넌트에서는 1 값을 띄우는 것을 확인할 수 있습니다. 일반적인 value 값을 넣어서 보낼 수도 있는 것이죠.

 

JS Object도 보낼 수 있는데요. 부모 App.vue를 수정하여 확인해보겠습니다. 

자식 컴포넌트는 수정을 하지 않은 경우인데요. Object가 그대로 출력되고 있는 것을 볼 수 있습니다.

왼쪽 Home.vue 코드

Object에서 접근연산자를 사용해 변수를 사용하면 변수(firstName, lastName)에 할당된 값을 제대로 보여주는 것을 확인할 수 있습니다.

왼쪽 Home.vue 수정한 코드

이처럼 Props는 문자열이나(String), 숫자(num etc..), 객체(Object)나 어떤 형태의 데이터 타입이든 들어올 수 있습니다.


# Props의 활용 2

Home.vue 파일, 자식 컴포넌트를 보면 Props를 통해 데이터를 전달 받습니다. 현재는 Array 형태로 데이터를 전달 받고 있는데요. Object 형태로 데이터를 받을 수 잇습니다.

개발이 고도화 되었을 때 다양한 컴포넌트를 다뤄지게 되는데, 어딘가에서 잘못된 데이터를 넘기고 있는 경우 확인을 할 수 있는 방법이 되기도 합니다. 

 

현재 상태에서는 개발자 도구에 아무 이상이 없는데요.

먼저 Object 구문을 사용해 Props 데이터를 받는 형태로 수정하겠습니다.

왼쪽에는 전달받는 변수명(nameOfChild), 오른쪽에는 해당 데이터의 포맷(Object)으로 볼 수 있습니다.

 

위의 경우에는 문제 없이 나타나는 것을 볼 수 있는데,

 

데이터 포맷을 String으로 변경하면 경고메시지를 확인하게 됩니다. String으로 들어와야 되는 것이 Object로 들어왔기 때문입니다. 


반응형

# Props의 활용 3

Object로 넘겨 받은 데이터를 Object로 하여 옵션을 추가할 수 있습니다.

type, default, required 라는 옵션인데요.

type# Props의 활용 2 에서 확인한 것처럼 데이터 형태를 의미합니다.

default는 Props로 넘어오는 값이 세팅되지 않는다면 기본으로 default 값으로 세팅한다는 것을 의미합니다.

required는 Props로 부터 해당 데이터는 필수로 받아와야 한다는 것을 의미합니다.

 

 

# required 옵션 확인

자식 컴포넌트에서 default 제거, 부모 컴포넌트에서 props로 보내는 데이터 제거

[왼쪽] 자식 컴포넌트 [오른쪽] 부모 컴포넌트

자식 컴포넌트의 경고 메시지

 

# default 옵션 확인

자식 컴포넌트에 default 옵션 추가, 부모 컴포넌트에 데이터 바인딩 제거

[왼쪽] 자식 컴포넌트 [오른쪽] 부모 컴포넌트

결과 : default로 세팅된 값이 화면에 출력되는 것을 확인할 수 있습니다.


오늘은 내용이 좀 길었지만 Props 활용에 대해 알아보았습니다. 도움이 되셨다면, 좋아요 꾹! 구독 꾹! 광고 꾹! 해주시면 저에게 큰 힘이 됩니다! 감사합니다.^^

728x90
반응형