5강. Components and Props
[무료] 처음 만난 리액트(React) - 인프런 | 강의
자바스크립트와 CSS 기초 문법과 함께 리액트의 기초를 탄탄하게 다질 수 있습니다., - 강의 소개 | 인프런...
www.inflearn.com
Components
Componenet-Based : 리액트는 컴포넌트 기반의 구조
● 리액트에서는 모든 페이지가 컴포넌트로 구성되어 있고, 하나의 컴포넌트는 또 다른 여러 개의 컴포넌트의 조합으로 구성될 수 있음
● 이러한 컴포넌트들을 레고 블록 조립하듯 컴포넌트들을 모아서 개발
▲ 에어비엔비 웹사이트 화면을 캡쳐한 뒤 컴포넌트들을 표시
● A로 표시된 부분과 B로 표시된 부분이 리액트 컴포넌트
● 이러한 컴포넌트를 여러 번 반복적으로 사용해서 하나의 페이지를 구성
작은 컴포넌트들이 모여서 하나의 컴포넌트를 구성하고, 이러한 컴포넌트들이 모여서 전체 페이지를 구성
하나의 컴포넌트를 반복적으로 사용함으로써 전체 코드의 양을 줄일 수 있어서 개발 시간과 유지보수 시간도 줄일 수 있음
● 리액트 컴포넌트는 개념적으로는 자바스크립트의 함수와 비슷
● 함수가 입력을 받아서 출력을 내뱉는 것처럼, 리액트 컴포넌트도 입력을 받아서 정해진 출력을 내뱉음
But 리액트 컴포넌트의 입력과 출력은 일반적인 자바스크립트의 함수와 다름
리액트 컴포넌트의 입력은 Props, 출력은 React element
● 리액트 컴포넌트의 역할은 어떠한 속성들을 입력으로 받아서 그에 맞는 리액트 element를 생성하여 리턴하는 것
react element는 리액트 앱을 구성하는 가장 작은 빌딩 블록들, 자바 스크립트 객체 형태로 존재하며 화면에 보이는 것을 기술
● 리액트 컴포넌트는 만들고자하는 대로 props(속성)을 넣으면 해당 속성에 맞춰 화면에 나타날 element를 만들어주는 것
● 리액트 컴포넌트로부터 element를 만드는 과정은 붕어빵 틀에 반죽을 부어서 붕어빵을 굽는 과정과 비슷
● React Component는 붕어빵 틀을, Element는 각 붕어빵들을 의미
● 객체지향의 클래스, 인스턴스의 개념과 비슷
● 클래스라는 붕어빵 틀에서 인스턴스라는 실제 붕어빵이 만들어져서 나옴
리액트 컴포넌트는 객체지향까지는 아니지만, 비슷한 개념을 가지고 있음
붕어빵 틀만 있으면 계속해서 붕어빵을 만들어낼 수 있는 것
Props
리액트 컴포넌트의 입력으로 들어가는 Props는 무엇일까?
Prop + s (복수형)
prop: property(속성)라는 단어를 줄인 것
Component의 속성
리액트 컴포넌트는 붕어빵 틀에 해당, Props는 붕어빵의 재료에 해당
같은 붕어빵이라도 어떤 재료를 넣느냐에 따라 다른 맛이 남
● 팥을 넣으면 팥 붕어빵이, 슈크림을 넣으면 슈크림 붕어빵이, 고구마를 넣으면 고구마 붕어빵이 됨
같은 붕어빵 틀에서 구워져서 나온 것이기 때문에 모양은 붕어 모양으로 같지만, 속을 뜯어보면 안의 재료도 다르고 색깔도 다름
● 이처럼 props는 같은 리액트 컴포넌트에서, 눈에 보이는 글자나 색깔 등의 속성을 바꾸고 싶을 때 사용하는 컴포넌트의 속재료
● 빨간색으로 표시되어있는 부분은 여행할 지역을 나타내고 있음
● 모두 모서리가 둥근 사각형 모양에 상단에는 그림이 배경으로 들어가있고 하단에는 색깔로 된 배경과 글자가 들어가있는 형태
모양은 모두 동일한 형태지만, 안의 그림과 색상, 글자, 거리 등은 모두 다름
총 네 개의 여행지가 존재, 모두 같은 모양이지만 배경 이미지와 하단 영역의 색상과 글자는 모두 다름
-> 네 가지 모두 같은 컴포넌트에서 생성된 elements
컴포넌트의 모습과 속성을 결정하는 것이 props
Props: 컴포넌트에 전달할 다양한 정보를 담고 있는 자바스크립트 객체
컴포넌트에 어떤 데이터를 전달하고 전달된 데이터에 따라 다른 모습의 element를 화면에 렌더링하고 싶을 때 해당 데이터를 props에 넣어서 전달
'개발공부 > REACT' 카테고리의 다른 글
Component 만들기 [처음 만난 리액트 #17] (0) | 2023.02.01 |
---|---|
Props의 특징 및 사용법 [처음 만난 리액트 #16] (2) | 2023.01.31 |
리액트 시계 만들기 실습 [처음 만난 리액트 #14] (1) | 2023.01.30 |
Elements의 특징 및 렌더링하기 [처음 만난 리액트 #13] (1) | 2023.01.29 |
elements의 정의와 생김새 [처음 만난 리액트 #12] (0) | 2023.01.29 |