[TIL] React <2> - Component

Simple Key·2020년 4월 18일
0

Component 컴포넌트!!

아마 리액트를 배우면서 가장 많이 듣게 되는 단어가 Component 컴포넌트일 것이다 . 😑
컴포넌트는 리액트의 기본중 기본이라고 할 수 있다.

프론트엔드 개발에서 말하는 컴포넌트란 재사용이 가능한 UI단위이다. 만약 로그인, 회원가입 페이지를 만든다고 할 때, 리액트없이 html로만 만든다고 하면 input 태그를 반복해서 써야하고 디자인을 위해 같은 내용의 css도 각각 다른 css파일에 작성해야 했을 것이다.

또 '내 정보수정' 페이지를 추가해서 password input이 필요하다면 다시 똑같은 htmlcss를 작성해야 한다. 이처럼 동일한 코드가 반복되는 부분을 하나의 컴포넌트로 만들어 같은 디자인의 input이 필요한 곳마다 재 사용이 가능하다! 일단 잘 모르겠지만 그래도 따봉👍

컴포넌트는 독립적이며 재사용 가능한 코드로 관리가 가능하다. 하나의 컴포넌트에 html, css, js를 모두 합쳐서 만들 수 있다.

컴포넌트 만들기!!

컴포넌트는 function 함수 , class 클래스로 만들 수 있다.

함수로 Welcome 컴포넌트 구현하기

function Welcome(props) {
  return <h1>Hello, { props.name }</h1>;
}

클래스로 Welcome 컴포넌트 구현하기

클래스로 컴포넌트를 만드려면 React.Component를 extend 해서 생성해야 한다. 컴포넌트를 생성할 때 render() 메소드는 반드시 정의해야하고, return도 해주어야 한다!

class Welcome extends React.Component {
    render() {
        return <h1>Hello, {this.props.name}</h1>;
    }
}

컴포넌트 사용!!

직접 정의한 컴포넌트를 사용할 때, 원하는 attribute를 얼마든지 추가할 수 있다. 그러면 Welcome 컴포넌트(함수)에서 parameter로 해당 attribute를 받아서 사용할 수 있다. 이걸 props라고 한다. props는 property의 준말이다.
.(dot)으로 속성명에 접근이 가능하고, props.속성명으로 속성의 값을 가져올 수 있다 ! 😮

// 1. Welcome 컴포넌트 정의하기
function Welcome(props) {
    return <h1>Hello, { props.name }</h1>;
}
//------------------------------------------------------------------
// 2. App 컴포넌트 정의하기
function App() {
    return (
         <div>
             <Welcome name="Sara" />
             <Welcome name="Kay" />
             <Welcome name="Ashley" />
         </div>
    );
}
// 3. 화면에 React 엘리먼트 그려주기
//------------------------------------------------------------------
ReactDOM.render(
    <App />,
    document.getElementById('root')
);

Welcome 컴포넌트 : Welcome 컴포넌트를 사용한 측(부모)에서 name이라는 attribute를 부여했다. props.name를 통해 name의 값을 가져온다. App 컴포넌트를 보면 div로 감싸져 있고, <Welcome />컴포넌트를 세번 사용했다. name이라는 attribute를 부여했다.

ReactDOM.render 함수는 가장 아래에 작성하고, React 엘리먼트를 그려준다. 무슨 컴포넌트를 렌더할지, 어디에 렌더할지 작성해주면 된다.

profile
프론트엔드 개발자 심기현 입니다.

0개의 댓글

관련 채용 정보