내장 컴포넌트
리액트(React)에서 컴포넌트는 UI를 구성하는 독립적이고 재사용 가능한 코드 조각을 의미합니다.
리엑트 네이티브 컴포넌트
리액트 네이티브(React Native)는 모바일 애플리케이션을 개발하기 위한 프레임워크로, 리액트의 개념을 기반으로 하면서 모바일에 특화된 컴포넌트를 제공합니다. 기본적인 리액트 네이티브 컴포넌트는 아래와 같습니다.
1. View
View
는 리액트 네이티브(React Native)에서 가장 기본적인 컴포넌트 중 하나로, UI의 빌딩 블록(building block) 역할을 합니다. 웹의 <div>
태그나 iOS의 UIView
, Android의 ViewGroup
과 유사한 역할을 합니다.
주요 특징
-
컨테이너:
View
는 다른 컴포넌트들을 묶어 주는 컨테이너 역할을 할 수 있습니다. 따라서 레이아웃을 구성하는 데 중요한 역할을 합니다. -
스타일링:
View
컴포넌트는style
prop을 통해 스타일링될 수 있습니다. 여기에는 배경색, 패딩, 마진, 테두리 등의 스타일 속성을 적용할 수 있습니다. -
터치 이벤트:
View
는 사용자의 터치 이벤트에 반응할 수 있습니다. 예를 들면, 사용자의 탭(tap)이나 스와이프(swipe) 등의 동작을 감지하고 해당 동작에 응답할 수 있습니다. -
접근성:
View
는 접근성 기능도 지원합니다. 예를 들면, 스크린 리더(screen reader)와 같은 보조 기술에 대한 정보를 제공하는 역할을 합니다. -
레이아웃: 리액트 네이티브는 Flexbox 레이아웃을 사용합니다.
View
컴포넌트는 이 Flexbox 레이아웃의 모든 속성을 지원하므로, 복잡한 UI 레이아웃을 구성하는 데에도 활용될 수 있습니다.
사용 예제
import React from "react";
import { View, Text } from "react-native";
const ViewBoxesWithColorAndText = () => {
return (
<View
style={{
flexDirection: "row",
height: 100,
padding: 20,
}}
>
<View style={{ backgroundColor: "blue", flex: 0.3 }} />
<View style={{ backgroundColor: "red", flex: 0.5 }} />
<Text>Hello World!</Text>
</View>
);
};
export default ViewBoxesWithColorAndText;
위에 주어진 코드의 주요 특징을 설명하면 다음과 같습니다.
-
Imports:
React
는 React 라이브러리를 가져오기 위한 것입니다.View
와Text
는 React Native 라이브러리에서 가져온 UI 구성 요소입니다.View
는 주로 컨테이너 역할을 하며,Text
는 텍스트를 표시합니다.
-
ViewBoxesWithColorAndText 컴포넌트:
- 이 컴포넌트는 3개의 자식 요소를 포함하는
View
로 구성되어 있습니다.
- 이 컴포넌트는 3개의 자식 요소를 포함하는
-
외부 View 스타일:
flexDirection: 'row'
: 자식 요소들이 가로 방향으로 나열됩니다.height: 100
: 이 View의 높이는 100 픽셀입니다.padding: 20
: 이 View의 모든 방향에 20 픽셀의 패딩이 추가됩니다.
-
자식 요소들:
- 첫 번째
View
: 파란색 배경색을 가지며, 부모View
의 너비의 30%를 차지합니다. (flex: 0.3
) - 두 번째
View
: 빨간색 배경색을 가지며, 부모View
의 너비의 50%를 차지합니다. (flex: 0.5
) Text
: "Hello World!"라는 텍스트를 표시합니다.
- 첫 번째
-
Export:
export default ViewBoxesWithColorAndText;
를 통해 다른 파일에서 이 컴포넌트를 가져와 사용할 수 있습니다.
위의 설명을 바탕으로, 이 컴포넌트를 화면에 표시하면, 두 개의 서로 다른 색상의 박스와 "Hello World!"라는 텍스트가 가로 방향으로 나열된 모습을 볼 수 있을 것입니다.
사진을 클릭하면 예시 코드를 실행해볼 수 있습니다.
2. Text
Text
는 리액 트 네이티브(React Native)의 주요 컴포넌트 중 하나로, 스크린에 텍스트를 표시하기 위해 사용됩니다. 웹의 <span>
또는 <p>
태그와 유사한 역할을 합니다.
주요 특징
-
텍스트 표시:
Text
컴포넌트는 사용자에게 텍스트 정보를 표시하는 데 사용됩니다. -
스타일링:
Text
컴포넌트 역시style
prop을 통해 스타일링될 수 있습니다. 폰트 크기, 폰트 색상, 가중치 (두껍게), 텍스트 정렬 방식 등의 다양한 텍스트 스타일링 속성을 지원합니다. -
중첩 가능:
Text
컴포넌트는 중첩될 수 있습니다, 즉, 한Text
컴포넌트 내부에 또 다른Text
컴포넌트를 포함할 수 있습니다. 이를 통해 일부 텍스트 세그먼트에 다른 스타일을 적용하는 등의 복잡한 스타일링이 가능합니다. -
터치 이벤트:
Text
컴포넌트에도 터치 이벤트를 적용할 수 있습니다. 이를 통해 텍스트를 탭했을 때의 동작 등을 정의할 수 있습니다. -
텍스트 특화 속성: 텍스트의 줄 간격(line height), 글자 간격(letter spacing), 텍스트 자르기(ellipsis) 등의 텍스트 특화 속성을 설정할 수 있습니다.