app.js
import './App.css';
import React from 'react';
import Hello from './Hello';
function App() {
const name = 'react';
const style = {
backgroundColor: 'black',
color: 'aqua',
fontSize: 24,
padding: '1rem'
}
return (
<>
<Hello />
<Hello />
<Hello />
<div style={style}>{name}</div>
<div className="gray-box">{name}</div>
</>
);
}
export default App;
app.css
.gray-box {
background: gray;
width: 64px;
height: 64px;
}
properties ๐ props
์ด๋ ํ ๊ฐ์ ์ปดํฌ๋ํธ์ ์ ๋ฌํด ์ฃผ์ด์ผ ํ ๋ ์ฌ์ฉํจ
app.js
import './App.css';
import React from 'react';
import Hello from './Hello';
function App() {
return (
<>
<Hello name="react" />
</>
);
}
export default App;
name์ด๋ผ๋ ๊ฐ์ ์ ๋ฌํด ์ฃผ๊ณ ์ถ์ ๋
Hello.js์์ props๋ก ๋ฐ์ ์ฌ์ฉํ๋ฉด๋๋ค
๊ฐ์ฒด ํํ๋ก ์ ๋ฌ๋๋ name๊ฐ์ ์กฐํํ๊ณ ์ถ๋ค๋ฉด props.name์ด๋ผ ์น๋ฉด ๋จ
hello.js
import React from 'react';
function Hello(props) {
return <div><h1> hello { props.name }</h1></div>
}
export default Hello;
์ฌ๋ฌ๊ฐ์ props๋ฅผ ์ ๋ฌํ๋ค๊ณ ํ๋ฉด ์ด๋จ๊น
app.js๋ฅผ ์์ ํด color๋ผ๋ ๊ฐ์ ์ค์
app.js
import './App.css';
import React from 'react';
import Hello from './Hello';
function App() {
return (
<>
<Hello name="react" color="red" />
</>
);
}
export default App;
๋ง์ฐฌ๊ฐ์ง๋ก hello.js ์์
import React from 'react';
function Hello(props) {
return <div style={{ color: props.color }}>
<h1> hello {props.name}</h1>
</div>
}
export default Hello;
props ๋ด๋ถ์ ๊ฐ์ ์กฐํ ํ ๋๋ง๋ค props.๋ฅผ ์ ๋ ฅํ๊ณ ์์ผ๋ ๋น๊ตฌ์กฐํ ํ ๋น์ ํตํด์ ์ฝ๋๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ๋ง๋ค์ด ๋ณด๊ฒ ๋ค
hello.js ์์
import React from 'react';
function Hello({color, name}) {
return <div style={{ color }}>
<h1> hello {name}</h1>
</div>
}
export default Hello;
์ ๋๋ค
props๊ฐ ์์์๋ ๊ฐ์ ๋ฑํ ๋๊ฒจ๋ฐ์ง ์์์๋ ๋จ๋ ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํด ๋๋ ๋ฒ
hello.js์์ defaultProps๋ฅผ ์ค์ ํด ๋๋ค
hello.js
import React from 'react';
function Hello({color, name}) {
return <div style={{ color }}>
<h1> hello {name}</h1>
</div>
}
Hello.defaultProps = {
name: "ํ๊ธธ๋"
}
export default Hello;
app.js
import './App.css';
import React from 'react';
import Hello from './Hello';
function App() {
return (
<>
<Hello name="react" color="red" />
<Hello color="blue"/>
</>
);
}
export default App;
๋๋ฒ์งธ Hello์ปดํฌ๋ํธ์ name๊ฐ์ ๋๊ฒจ์ฃผ์ง ์์๋๋ฐ๋ hello.js์์ defaultProps๋ก ์ค์ ํด๋ name๊ฐ(ํ๊ธธ๋)์ด ๋ค์ด๊ฐ ์๋๊ฒ์ ์ ์ ์๋ค
์ปดํฌ๋ํธ ์์ ๋ด์ฉ์ ์กฐํํ๋ ค๋ฉด ๐ children (์ฐ์ผ๊ณณ์ ์ ํ๋ค...์ด๋ฐ ๋๋)
Wrapper.js ํ๋ ๋ง๋ฌ
import React from 'react'
function Wrapper() {
const style = {
border: '2px solid black',
padding: '16px'
};
return (
<div style={style} >
</div>
)
}
export default Wrapper;
App.js ์์
import './App.css';
import React from 'react';
import Hello from './Hello';
import Wrapper from './Wrapper';
function App() {
return (
<>
<Hello name="react" color="red" />
<Hello color="blue" />
<Wrapper />
<Wrapper>
<Hello name="react" color="red" />
<Hello color="blue" />
</Wrapper>
</>
);
}
export default App;
Wrapper๋ง ํ๋ ๋ฐ๋ก, Wrapper์์ ์ปดํฌ๋ํธ๋ฅผ ๋ฃ์๊ฒ ๋ฐ๋ก ํด์ ๋๊ฐ ๋ฃ์ด์คฌ๋ค
์์๋ง ํด๋ณด๋ฉด ๋ค๋ชจ ๋ฐ์ค ํ๋๋ ๋ค๋ชจ๋ฐ์ค ํ๋ ์์ Hello์ปดํฌ๋ํธ๊ฐ ์ฐํ๊ฒ ๊ฐ์ง๋ง~
์ปดํฌ๋ํธ ํ๊ทธ ์์ ๊ฐ์ ์กฐํํ๊ธฐ ์ํด์๋ props.children์ ์ฌ์ฉํ๋ค
Wrapper.js ์์
import React from 'react'
function Wrapper({children}) {
const style = {
border: '2px solid black',
padding: '16px'
};
return (
<div style={style} >
{children}
</div>
)
}
export default Wrapper;
๐์ฐธ๊ณ ์!!
'Develop Study ๐ป' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
react study / input์ฒ๋ฆฌํ๊ธฐ / ์ฌ๋ฌ๊ฐ input ์ฒ๋ฆฌ (0) | 2021.01.23 |
---|---|
react study / ์ปดํฌ๋ํธ์์ ๊ฐ ๋ฐ์ ๋ฐ๊พธ๊ธฐ (0) | 2021.01.22 |
react ๋ฆฌ์ํธ ๊ณต๋ถ / ์์ํ๊ธฐ (0) | 2021.01.22 |
MogoDB / Mongoose / populate / Nosql๋ก ์กฐ์ธ ๊ตฌํ (0) | 2021.01.21 |
210120 ๊ฐ๋ฐ ๊ณต๋ถ (0) | 2021.01.20 |