-
[React]propsreact 2023. 11. 7. 23:19
๐ฅ props ( properites(์์ฑ)์ ์ฝ์ )
๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ์ ์ ๋ฌํด ์ฃผ๋ ๊ฐ์ props ๋ผ๊ณ ํจ
(key : value) ๊ฐ์ฒดํํ๋ก ์ปดํฌ๋ํธ์ ๋๊ฒจ์ค ์ ์์App.js (๋ถ๋ชจ์ปดํฌ๋ํธ)
// ๋ถ๋ชจ ์ปดํฌ๋ํธ import React from 'react'; import Mypage from './Mypage'; function App() { return ( <Mypage title="ํํ๋ฃจ" name="๊ทค" introduction="์๋ฝ" width={2560} height={1440} /> ); } export default App;
๐ฅ ๋ฌธ์์ด ์ด์ธ์ ์ ์, ๋ณ์, ๋ค๋ฅธ ์ปดํฌ๋ํธ ๋ฑ์ด ๋ค์ด๊ฐ ๊ฒฝ์ฐ ์ค๊ดํธ๋ฅผ ์ฌ์ฉํด์ ๊ฐ์ธ์ค์ผ ํจ
Mypage.jsx (์์ ์ปดํฌ๋ํธ)
import React from 'react'; const Mypage = (props) => { return ( <div>์์์ปดํฌ๋ํธ{props.title}</div>; //ํํ๋ฃจ <div>์์์ปดํฌ๋ํธ{props.name}</div>; //๊ทค )}; export default Mypage;
๐ฅ ์ค๊ดํธ { }๋ก ๊ฐ์ธ์ฃผ๋ฉด ๊ฐ์ฒด์ key์ ํด๋นํ๋ ๊ฐ๋ง ์ ๋ฌ๊ฐ๋ฅ
์ฆ, ๊ตฌ์กฐ ๋ถํด(๋น๊ตฌ์กฐํ ํ ๋น)๋ฅผ ํจMypage.jsx
import React from 'react'; const Mypage = ({title,name}) => { return ( <div>์์์ปดํฌ๋ํธ{title}</div>; //ํํ๋ฃจ <div>์์์ปดํฌ๋ํธ{name}</div>; //๊ทค )}; export default Mypage;
๐ฅ ์คํ๋ ๋ ๊ตฌ๋ฌธ ์ฌ์ฉ! ...props
=> App์ ๋ชจ๋ props๊ฐ ๊ฐ๊ฐ์ ์ด๋ฆ์ ๋์ดํ์ง ์๊ณ ๋ชจ๋ Mypage๋ก ์ ๋ฌ
App.js
const App = (props) => { return ( <div className="card"> <Mypage {...props} /> </div> }; export default App;
๐ฅ ํ๋ฒ๊ฑฐ์ฒ๋ผ ์ค์ฒฉ๋ ์ปดํฌ๋ํธ๋ ๋ถ๋ชจ์ปดํฌ๋ํธ๋ ๋ฐ๋ก ์๋์ ์ปดํฌ๋ํธ๋ฅผ children์ด๋ผ๋ props๋ก ๋ฐ์
<Card> <Mypage /> </Card>
Card.jsx
import Mypage from './Mypage'; const Card = ({ children }) => { return ( <div className="card"> {children} // Mypage </div> ); } export default Card;
๐ฅ props์ ๊ธฐ๋ณธ๊ฐ์ defaultProps๋ก!
Card.defaultProps = { name: '์ด๋ฆ ์์', nick: '๋ณ๋ช ์์' }
Card.jsx
import Mypage from './Mypage'; const Card = ({ name,nick }) => { return ( <div className="card"> {name} </div> ); } // ๊ธฐ๋ณธ๊ฐ ์ ์ Card.defaultProps = { name: '์ด๋ฆ ์์', nick: '๋ณ๋ช ์์' } export default Card;
๊ธฐ๋ณธ๊ฐ์ name : '์ด๋ฆ ์์' , nick : '๋ณ๋ช ์์'์ผ๋ก ์ ์ํด์ค
App.jsx
import Card from './Card' function App() { return ( <div> <Card name="๊ฐ์"/> </div> ); } export default App;
์์(๋ถ๋ชจ) ์ปดํฌ๋ํธ์ธ App.js์์ ํ์(์์) ์ปดํฌ๋ํธ์ธ Card ์ props๊ฐ
=> name= ๊ฐ์, nick์ ๊ธฐ๋ณธ ๊ฐ์ธ '๋ณ๋ช ์์'์ผ๋ก ์ค์ ๋จ
import Card from './Card' function App() { return ( <div> <Card name="๊ฐ์" nick="๊ฐ์์ฑ"/> </div> ); } export default App;
=> name= ๊ฐ์, nick= ๊ฐ์์ฑ๋ก ์ค์ ๋จ
'react' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] ๋ด๊ฐ ๋ณด๋ ค๊ณ ์ด ๊ฐ๋ฐํ๊ฒฝ ์ ํ ํ๊ธฐ (0) 2023.11.17 ๋ฆฌ๋์ค ํดํท (0) 2023.11.09 React ๋ผ์ฐํฐ : Link & UseNavigate (1) 2023.10.31 useEffect / useCallbackํ๊ธฐ (0) 2023.10.25 React ๊ฑธ์๋ง_ ์ปดํฌ๋ํธ๋ง๋ค๊ธฐ/๋ชจ๋ฌ์ฐฝ ๊ตฌํํ๊ธฐ (1) 2023.10.19