[React.js] 4. Component와 Props

2021. 7. 19. 01:32개발/React.js

반응형

3장에서는 React를 이루는 가장 작은 단위인 Element에 대해서 알아 봤었다.

이번 4장에서는 재사용이 가능한 Component와 props - 속성(properties) 에 대해서 배울 수 있다.

 

 

Component를 정의하는 방법1 - Javascript 함수 작성

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

 

Component를 정의하는 방법2 - ES6 Class 사용

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

 

 

딱 봐도 1번 방법이 생산성면에서 좋아보인다. (간결성이 2번 방법에 비해 좋기때문에)

 

 

이렇게 만든 Component를 사용하는 방법은 아래와 같다.

const element = <Welcome name="Sara" />;

ReactDOM.render(
  element,
  document.getElementById('root')
);

 

Component를 생성했다는 것은 html에서 말하는 tag를 하나 생성한 것과 같다.

(html tag와는 분명히 구별되어야 하므로 맨 앞글자를 꼭 대문자로 써야한다. 소문자로 쓴 경우 html tag로 인식한다.)

 

element에 Welcome 이라는 Component를 만들되 그때의 속성값 (props 값) 은 name="Sara" 가 전달된다.

그럼 {props.name} 에는 "Sara" 가 전달되고, 하나의 JSX를 만들어 return 하게된다.

 

결론적으로 const element 에는 "<h1>Hello, Sara</h1>" 가 들어가게 된다.

 

 

좀 더 나아가 아래와 같이 컴포넌트가 다른 컴포넌트를 포함시킬 수도 있다.

 

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

function App() {
  return (
    <div>
      <Welcome name="Sara" />
      <Welcome name="Cahal" />
      <Welcome name="Edite" />
    </div>
  );
}

ReactDOM.render(
  <App />,
  document.getElementById('root')
);

위의 경우는 App Component안에서 Welcome Component를 사용하고 있음을 알 수 있다.

우리는 Component를 통해 코드를 재사용해서 새로운 component를 만들 수 있음을 알 수 있다.

 

 

 

+ props는 읽기 전용!!

React에서 모든 Component는 자신의 props를 다룰때 props자체를 수정해서는 안된다.

아래와 같이 사용해서는 안된다!

 

function withdraw(account, amount) {
  account.total -= amount;
}

 

반응형

'개발 > React.js' 카테고리의 다른 글

[React.js] 6. Event  (0) 2021.07.20
[React.js] 5. State and Lifecycle  (0) 2021.07.20
[React.js] 0. Self Study  (0) 2021.07.19
[React.js] 3. Element Rendering (엘리먼트 렌더링)  (0) 2021.07.19
[React.js] 2. JSX란  (0) 2021.07.18