본문 바로가기

■ 프로그래밍/React

Component(컴포넌트)

리액트 관련 글을 읽다보면 Component라는 단어를 굉장히 많이 사용한다. 

Component(이하 '컴포넌트')는 재사용 가능한 UI 단위이다. 앞 글에서 말한 라이브러리와 같은 역할을 한다. 

 

쇼핑몰을 예로 들면, 모든 상품 상세페이지의 레이아웃이 같다. 

리액트를 배우기 전이라면, 일일히 HTML을 복사해서 붙여넣고 <a>태그로 이동시켜야 했다. 하지만 리액트에서는 상세페이지의 틀(컴포넌트)을 만들어주면 무한히 생성이 가능하다. 

이 외에도 메인페이지에서 항상 보이는 카테고리 바도 컴포넌트로 만들어서 계속 메인페이지에 띄워지게 할 수 있다. 

이렇게 독립적이고 재사용 가능한 것을 컴포넌트라고 한다. 

 

Component(컴포넌트) 만들기

컴포넌트는 class나 function으로 만들 수 있으며, 컴포넌트 이름은 무조건 대문자로 시작한다. (컴포넌트 파일명도 대문자로 시작)

 

(1) class로 만든 경우

1
2
3
4
5
class Welcome extends React.Component { 
    render() { 
        return <h1>Hello, {this.props.name}</h1>
    } 
}
cs

리액트에서는 컴포넌트를 사용하기 위해 class 안에 render() 메소드 및 return 정의가 필수다. 

*Rendering(렌더링)이란, HTML, 리액트 요소 등의 코드(결과물)를 눈으로 볼 수 있도록 배포하는 것이다. 

 

 

(2) function으로 만든 경우

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 1. Welcome 컴포넌트 정의 
function Welcome(props) { 
    return <h1>Hello, {props.name}</h1>
 
// 2. App 컴포넌트 정의 
function App() { 
    return ( 
        <div> 
            <Welcome name="Sara" /> 
            <Welcome name="Cahal" /> 
            <Welcome name="Edite" /> 
        </div> 
    ); 
 
 
// 3. 화면에 React 요소 그려주기 
ReactDOM.render( 
    <App />
    document.getElementById('root'
);
cs

function으로 만든 경우, 함수 안에 return으로 보여줄 값을 작성하고, 제일 밑에 ReactDom.render( );를 작성함으로 어디에 렌더할 것인지 써줘야 한다. 

 

See the Pen jsx by Yeri (@yeri-kim) on CodePen.

 

 

'■ 프로그래밍 > React' 카테고리의 다른 글

React Lifecycle(생명 주기)  (0) 2020.04.12
State  (0) 2020.04.12
Props  (0) 2020.04.12
[React/에러] Module not found: Can't resolve './node_modules/react'  (0) 2020.04.12
JSX  (0) 2020.04.10