ABOUT ME

Today
Yesterday
Total
  • [React]props
    react 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= ๊ฐ์ž์ฑ„๋กœ ์„ค์ •๋จ

Designed by Tistory.