React

[React] props

썽연 2021. 10. 7. 23:40
728x90

props는 컴포넌트 속성을 설정할 때 사용하는 요소

 

props값은 해당 컴포넌트를 불러와 사용하는 부모 컴포넌트에서 설정할 수 있다.

즉, 상위컴포넌트의 데이터를 하위컴포넌트에서 사용. (ex) App 컴포넌트가 부모컴포넌트)

 

EX)

App.js

import './App.css';
// import { Component } from 'react';
import React from 'react';
import MyComponent from './MyComponent';

const App = () =>{
  return <MyComponent name="React"/>
}
// const App = () => <MyComponent/> 
//위와 아래는 같은 의미를 나타냄.
export default App;

 

MyComponent.js

import React from "react";

const MyComponent = props => {
  return <div>안녕하세요, 제 이름은 {props.name}입니다. </div>;
};

export default MyComponent;

 

App에서 MyComponent의 name을 설정해준 후,

MyComponent에서는 App(부모)에서 설정한 name값을 받기 위해 props를 사용하였다.

 

만약 여기서, App.js에서 MyComponent name을 설정해주지 않는다면

화면에 나오는 값은 안녕하세요, 제 이름은 입니다. 라고 출력이 될 것 이다.

 

그래서 defaultProps를 사용하여 기본 이름을 정의해준다.

 

MyComponent.js 에 추가

MyComponent.defaultProps = {
  name:"기본 이름"
}

위와 같은 코드는

안녕하세요, 제이름은 기본 이름입니다. 라고 출력이 될 것 이다.

 

만약, 컴포넌트를 사용할 때 태그 사이의 내용을 보여주고 싶다면 children을 사용해야한다.

ex)

App.js

import './App.css';
// import { Component } from 'react';
import React from 'react';
import MyComponent from './MyComponent';

const App = () =>{
  return <MyComponent>리액트</MyComponent>
}
// const App = () => <MyComponent/> 
//위와 아래는 같은 의미를 나타냄.
export default App;

MyComponent.js

import React from "react";

const MyComponent = props => {
  return <div>안녕하세요, 제 이름은 {props.name}입니다. <br/>
  children 값은 {props.children}
  입니다.
  </div>;

};

MyComponent.defaultProps = {
  name:"기본 이름"
}
export default MyComponent;

 

 

728x90