처음부터 시작하는 Java
  • 코드 랜더링과 map
    2022년 05월 11일 10시 15분 44초에 업로드 된 글입니다.
    작성자: 원2
    728x90
    반응형

    데이터를 랜더링을 해보고
    map을 써서 데이터를 효율적으로 작성해보자



    일단 기초 테이블 생성

    <App.jsx>

    import "./App.css";
    
    function App() {
      return (
        <table>
          <thead>
            <tr>
              <th>품목</th>
              <th>가격</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>사과</td>
              <td>1000원</td>
            </tr>
            <tr>
              <td>감귤</td>
              <td>2000원</td>
            </tr>
          </tbody>
        </table>
      );
    }
    
    export default App;

     


    객체 생성, 랜더링 후의 코드

    <App.jsx>

    import './App.css';
    
    function App() {
        const obj = {
          header: ["품종", "가격","수량(개)"],
          data: [
              {fruit: "사과", price: "1000원", ea: "5"},
              {fruit: "감귤", price: "2000원", ea: "3"}
          ]
        };
    
      return (
          <table>
              <thead>
                <tr>
                    <th>{obj.header[0]}</th>
                    <th>{obj.header[1]}</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                    <td>{obj.data[0].fruit}</td>
                    <td>{obj.data[0].price}</td>
                </tr>
                <tr>
                    <td>{obj.data[1].fruit}</td>
                    <td>{obj.data[1].price}</td>
                </tr>
              </tbody>
          </table>
      );
    }
    
    export default App;

     



    <App.css>

    table {
      margin: 100px;
      border: 1px solid black;
      border-collapse: collapse;
    }
    
    th, td {
      border: 1px solid black;
    }

     



    결과

     



    근데 저런 객체가 수백수만개가 된다면...?
    그냥 생각만해도 아찔하다

    그래서 map을 써서 넣어보자!

    <App.jsx>

    import './App.css';
    
    function App() {
        const obj = {
          header: ["품종", "가격","수량(개)"],
          data: [
              {fruit: "사과", price: "1000원", ea: "5"},
              {fruit: "감귤", price: "2000원", ea: "3"},
              {fruit: "밀감", price: "1000원", ea: "1"},
              {fruit: "바나나", price: "1000원", ea: "7"},
              {fruit: "감", price: "1500원", ea: "5"},
              {fruit: "메론", price: "10000원", ea: "1"},
              {fruit: "포도", price: "5000원", ea: "5"},
              {fruit: "배", price: "2000원", ea: "2"}
          ]
        };
    
      return (
          <table>
              <thead>
                <tr>
                    {obj.header.map((product) => {
                        return <th>{product}</th>
                    })}
                </tr>
              </thead>
              <tbody>
                    {obj.data.map((product) => {
                        return (
                            <tr>
                                <td>{product.fruit}</td>
                                <td>{product.price}</td>
                                <td>{product.ea}</td>
                            </tr>
                        );
                    })}
              </tbody>
          </table>
      );
    }
    
    export default App;

     



    결과

    짜잔

    728x90
    반응형

    'JS Library > React' 카테고리의 다른 글

    조건부 렌더링  (0) 2022.05.11
    components에 props 전달  (0) 2022.05.11
    JSX  (0) 2022.05.11
    컴포넌트 생성과 재사용  (0) 2022.05.11
    인텔리제이에서 리액트 설정 링크  (0) 2022.05.10
    초기 셋팅 링크  (0) 2022.05.10
    댓글