IT지식/리액트(React) 공부

6.React Props를 활용하여 간단한 웹페이지 제작

맨땅에헤딩개발자 2025. 3. 2. 17:21

그동안 배운 기술을 활용하여 간단한 판매사이트를 구현해보겠습니다.

 

우선 Props를 활용하기 위해 가장 상위가 되는 App.jsx에 변수들을 넣어주도록 합니다.

 

파일명 - App.jsx

import { useState } from 'react'
import reactLogo from './assets/react.svg'
import viteLogo from '/vite.svg'
import './App.css'
import axios from 'axios';
import SellList from './SellList'
function App() {

  return (
    <div style={{ padding: 30}}>
      <SellList
        img={["//thumbnail7.coupangcdn.com/thumbnails/remote/230x230ex/image/vendor_inventory/1040/a361ea9f2bcd71c916b1eca1b90844f009a9d4d7f40f681978033fdc1163.jpg","//thumbnail6.coupangcdn.com/thumbnails/remote/230x230ex/image/vendor_inventory/da86/f3d462666c6828c0e15a95d83191ed9f49323aafe6b50ab3bba1bfb2e849.jpg","//thumbnail9.coupangcdn.com/thumbnails/remote/230x230ex/image/vendor_inventory/8020/1a48f0944dc09e0992c23a519a62165dac58a421909f7876f84fde347ec1.jpg"]}
        name={['신라면 120g, 10개','육개장 사발면 86g, 6개','짜파게티 140g, 5개']}
        count={[10,6,5]}
        price={[7800,4680,4280]}
        eaPrice={[780,780,856]}
        tage="내일(월) 도착 보장"
      />
    </div>
  )
}

export default App

 

다음은 판매 페이지에서 부모 컴포넌트에서 props로 만들어주었던 변수를 활용하여 데이터를 받아줍니다.

 

파일명 - SellList.jsx

import './SellListCss.css'

function SellList({
    img,
    name,
    count,
    price,
    tage,
    eaPrice
}) {
    return (
        <div>
            <div>
                {img.map((item, i) => (
                    <div key={i} className="div">
                        <img alt="" src={item} />
                    </div>
                ))}
            </div>
            <div>
                {name.map((item, i) => (
                    <div key={i} className="div">
                        <p> {item} </p>
                    </div>
                ))}
            </div>
            <div>
                {price.map((item, i) => (
                    <div key={i} className="price">
                        <h3> {item.toLocaleString()}원</h3>
                    </div>
                ))}
            </div>
            <div>
                {eaPrice.map((eaPrice, i) => (
                        <div key={i} className="div">
                            <p>(1개당 {eaPrice}원)</p>
                        </div>
                 ))}
            </div>
            <div className="tage">
                {tage}
            </div>
            <div className="tage">
                {tage}
            </div>
            <div className="tage">
                {tage}
            </div>
        </div>

    )
}

export default SellList;

 

다음은 판매페이지에서 사용할 css파일을 만들어주도록 합니다.

 

파일명 - SellListCss.css

.div {
    float: left;
    width: 33%;
}

.price {
    float: left;
    width: 33%;
    color: red;
    align: left;
}

.tage {
    float: left;
    width: 33%;
    color: green;
}

 

비록 완성적이진 않아도 여태 배운 것 들을 직접 써서 만들어본다는 것에 의의를 두었습니다.