jineecode

JSX + Props 본문

JS/react

JSX + Props

지니코딩 2021. 2. 11. 16:13

1. 컴포넌트에 prop name과 value를 주기. 

import React from 'react';  
function Food() {
  return <div>I love potato</div>
}

function App() {
  return (
    <div>
      <h1>hello!</h1>
       <Food name="kimchi"/>
    </div>
  );
}

export default App;

 

<Food name="kimchi"/>

은 HTML 구조와 몹시 유사하게 생겼다.

 

꼭 name이 아니어도 괜찮다.

 

import React from 'react';  
function Food() {
  return <div>I love potato</div>
}

function App() {
  return (
    <div>
      <h1>hello!</h1>
       <Food fav="kimchi"/>
    </div>
  );
}

export default App;

 <Food fav="kimchi"/>

 fav라는 이름의 프로퍼티를 김치라는 value로 준 것. 

 

당연히 이런 식으로도 된다.

 

function App() {
  return (
    <div>
      <h1>hello!</h1>
      <Food fav="kimchi" something={true} array={ ["hello",1,2,3]}/>
       
    </div>
  );
}

 

이제 이 프로퍼티를 어떻게 쓰면 좋을까?

 

 

 

2. 앞서 만들어준 Food 에서 인자를 넣어보면 알 수 있다.

function Food(props) {
  console.log(props);
  return <div>I love potato</div>
}

콘솔로그를 찍어보면,

우리가 프로퍼티를 넣어주었던 정보가 담겨져 있다.

 

 

3. 김치를 꺼내보자.

import React from 'react';  
function Food(props) {
  console.log(props.fav);
  return <div>I love potato</div>
}

function App() {
  return (
    <div>
      <h1>hello!</h1>
      <Food fav="kimchi"/>
       
    </div>
  );
}

export default App;

 일반적으로 원하는 오브젝트의 value를 꺼내기 위해 props.fav를 쓰면 되지만,

프로퍼티에서 object를 꺼내는 방법이 있다.

 

function Food({ fav}) {
  console.log(fav);
  return <div>I love potato</div>
}

 

값은 kimchi로 같다.

 

즉 

 

{fav} 는 

props.fav

 

와 같다.

 

 

이를 응용하면 이렇게 할 수 있다.

 

import React from 'react';  
function Food({ fav}) {
  return <div>I love { fav}</div>
}

function App() {
  return (
    <div>
      <h1>hello!</h1>
      <Food fav="kimchi"/>
       
    </div>
  );
}

export default App;

결과 :

hello!

I love Kimchi

 

 

import React from 'react';  
function Food({ fav}) {
  return <div>I love { fav}</div>
}

function App() {
  return (
    <div>
      <h1>hello!</h1>
      <Food fav="kimchi"/>
      <Food fav="라면"/>
      <Food fav="만두"/>
      <Food fav="스파게티"/>
       
    </div>
  );
}

export default App;

 

 

4. map을 이용해서 효율적으로 사용해보자.

 

import React from 'react';  
function Food({ name, picture}) {
  return <div>
    <h2>I love {name}.</h2>
    <img src={ picture}/>
    </div>

}


const foodILike = [
  {
    name: "Kimchi",
    image:
      "http://aeriskitchen.com/wp-content/uploads/2008/09/kimchi_bokkeumbap_02-.jpg"
  },
  {
    name: "Samgyeopsal",
    image:
      "https://3.bp.blogspot.com/-hKwIBxIVcQw/WfsewX3fhJI/AAAAAAAAALk/yHxnxFXcfx4ZKSfHS_RQNKjw3bAC03AnACLcBGAs/s400/DSC07624.jpg"
  },
  {
    name: "Bibimbap",
    image:
      "http://cdn-image.myrecipes.com/sites/default/files/styles/4_3_horizontal_-_1200x900/public/image/recipes/ck/12/03/bibimbop-ck-x.jpg?itok=RoXlp6Xb"
  },
  {
    name: "Doncasu",
    image:
      "https://s3-media3.fl.yelpcdn.com/bphoto/7F9eTTQ_yxaWIRytAu5feA/ls.jpg"
  },
  {
    name: "Kimbap",
    image:
      "http://cdn2.koreanbapsang.com/wp-content/uploads/2012/05/DSC_1238r-e1454170512295.jpg"
  }
];

function App() {
  return (
    <div>
      {foodILike.map(here => <Food name={here.name} picture={ here.image}/>)}
    </div>
  );
}

export default App;

 

'JS > react' 카테고리의 다른 글

class component  (0) 2021.02.11
Protection with PropTypes  (0) 2021.02.11
react of component  (0) 2021.02.11
react의 골격  (0) 2021.02.11
react 실행, git hube에 연동하기.  (0) 2021.02.11
Comments