React
React - props 통해 컴포넌트에 값 전달
Starters
2020. 9. 8. 17:29
props = properties
1. App.js 에서 JSX 코드 내에 속성값 넣어줌
import React from 'react';
// import logo from './logo.svg';
// import './App.css';
import Hello from './hello';
function App() {
return (
<Hello name="react"/>
);
}
export default App;
2. hello.js 에 파라미터로 props를 사용하고 콘솔로그에 찍어보면
import React from 'react';
function Hello(props){
console.log(props)
return <div>안녕하세요</div>;
}
export default Hello;
3. 객체 형태로 컴포넌트에 값을 전달했다는 것을 확인할 수 있다.

4. 넘겨받은 값을 컴포넌트에서 사용
- hello.js -
import React from 'react';
function Hello(props){
return <div>안녕하세요 {props.name}</div>;
}
export default Hello;
{props.name} 이렇게 써주면 된다.
Props 사용법
1. App.js 에서 속성값 넣기
function App() {
return (
<Hello name="react" color="red"/>
);
}
2. hello.js 에 style={{color : props.color}}
function Hello(props){
return <div style={{color: props.color}}>안녕하세요 {props.name}</div>;
}
- 중괄호 두개인 것은 안에 중괄호는 객체를 감싸는 중괄호, 밖의 것은 객체 가져오는 중괄호
3. 매번 props.style, props.name 로 쓰긴 번거롭다면, 비구조 할당 사용
import React from 'react';
function Hello( {color, name} ){
return <div style={{
color
}}>안녕하세요 {name}</div>;
}
export default Hello;
4. props를 설정 하지 않았을 때, 기본값 설정(defaultProps)
- hello.js -
import React from 'react';
function Hello( {color, name} ){
return <div style={{
color
}}>안녕하세요 {name}</div>;
}
Hello.defaultProps = {
name: '이름없음'
}
export default Hello;
- App.js -
import React from 'react';
// import logo from './logo.svg';
// import './App.css';
import Hello from './hello';
function App() {
return (
<>
<Hello name="react" color="red"/>
<Hello color="pink"/>
</>
);
}
export default App;
- 브라우저 -

5. props.children
- JSX 안의 값을 조회하기 위해 사용
- 다른 컴포넌트로 어떤 컴포넌트의 내용 포함시키고 싶을 때
- 확인위해 새로운 컴포넌트 생성(Wrapper)
- App.js -
import React from 'react';
import Hello from './hello';
import Wrapper from './Wrapper';
function App() {
return (
<Wrapper>
<Hello name="react" color="red"/>
<Hello color="pink"/>
</Wrapper>
);
}
export default App;
- Wrapper.js -
import React from 'react';
function Wrapper( {children} ){
const style = {
border: '2px solid black',
padding: 16
}
return <div style={style}>{children}</div>
}
export default Wrapper;
- App.js 에서 <Wrapper></Wrapper>로 props들 감싸면 내부 props들이 브라우저 내에는 보이지 않음
- Wrapper.js 에서 { children }을 파라미터로 넣어주고, 반환시켜 주어야 정상적으로 내용이 보인다.