React

[TIL/React] 2023/08/18

CardComponent ๐ŸŸ src/components/common/ProductCard.jssrc/data/ProductList.jssrc/pages/Home.jsproduct list์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์žก๊ณ , ์นด๋“œ ์ปดํฌ๋„ŒํŠธ์— map์„ ํ†ตํ•ด ์ ์šฉํ•œ ๋’ค, home

2023๋…„ 8์›” 18์ผ2min read

CardComponent ๐ŸŸ 

1. src/components/common/ProductCard.js

code
import React from "react";
import { styled } from "styled-components";
import ComponentWrapper from "./ComponentWrapper";
import { products } from "../../data/ProductList";

const ProductWrapper = styled.div`
  width: calc(33.3% - 40px);
  margin: 10px;
`;

const ProductImgWrapper = styled.div`
  background-color: rgb(249, 247, 248);
  width: 100%;
  height: 400px;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
  box-shadow: 0px 10px 8px #999;
`;

const ProductImage = styled.img`
  width: 100%;
  height: auto;
`;

const ProductInfoTitle = styled.p`
  font-weight: bolder;
  font-size: 25px;
`;

const ProductInfoEtc = styled.p`
  color: #9b9b9b;
  font-weight: bolder;
`;

const ProductCard = () => {
  return (
    <ComponentWrapper style={{ display: "flex", flexWrap: "wrap" }}>
      {products?.map((product) => (
        <ProductWrapper key={product?.id}>
          <ProductImgWrapper>
            <ProductImage src={product?.image} />
          </ProductImgWrapper>
          <div>
            <ProductInfoTitle>{product?.title}</ProductInfoTitle>
            <ProductInfoEtc>
              {product?.price} / {product?.weight}
            </ProductInfoEtc>
          </div>
        </ProductWrapper>
      ))}
    </ComponentWrapper>
  );
};

export default ProductCard;

2. src/data/ProductList.js

code
import {
  porkImg,
  chickenImg,
  porkcutletImg,
  eggImg,
  milkImg,
  hanuroundImg,
  carthegardenImg,
} from "../images";

export const products = [
  {
    id: "1",
    image: porkImg,
    title: "์ดˆ์‹ ์„  ๋ผ์ง€ ์‚ผ๊ฒน์‚ด ๊ตฌ์ด์šฉ",
    price: "๊ธฐ์ค€๊ฐ€ 19,800์›",
    weight: "600g",
  },
  {
    id: "2",
    image: chickenImg,
    title: "์ดˆ์‹ ์„  ๋‹ญ๋ณถ์Œํƒ•",
    price: "๊ธฐ์ค€๊ฐ€ 7,800์›",
    weight: "950g",
  },
  {
    id: "3",
    image: porkcutletImg,
    title: "์ดˆ์‹ ์„  ๋“ฑ์‹ฌ ๋ˆ๊นŒ์Šค",
    price: "๊ธฐ์ค€๊ฐ€ 12,500์›",
    weight: "770g",
  },
  {
    id: "4",
    image: eggImg,
    title: "์ดˆ์‹ ์„  ๋™๋ฌผ๋ณต์ง€ ๋ฌดํ•ญ์ƒ์ œ ์œ ์ •๋ž€",
    price: "๊ธฐ์ค€๊ฐ€ 6,900์›",
    weight: "12๊ตฌ",
  },
  {
    id: "5",
    image: milkImg,
    title: "์ดˆ์‹ ์„  ๋ฌดํ•ญ์ƒ์ œ ์šฐ์œ ",
    price: "๊ธฐ์ค€๊ฐ€ 3,600์›",
    weight: "900ml",
  },
  {
    id: "6",
    image: hanuroundImg,
    title: "์ดˆ์‹ ์„  ์ด์œ ์‹์šฉ ํ•œ์šฐ ์šฐ๋‘” ๋‹ค์ง์œก",
    price: "๊ธฐ์ค€๊ฐ€ 17,100์›",
    weight: "180g",
  },
  {
    id: "7",
    image: carthegardenImg,
    title: "๋‚˜๊ฐ€๊ฑฐ๋“  ๋‹˜",
    price: "๊ธฐ์ค€๊ฐ€ 39,800์›",
    weight: "980g",
  },
];

3. src/pages/Home.js

code
import React from "react";
import { backgroundImg } from "../images";
import ComponentWrapper from "../components/common/ComponentWrapper";
import TestComponent from "../components/common/TestComponent";
import ProductCard from "../components/common/ProductCard";
const Home = () => {
  return (
    <>
      <div style={{ backgroundColor: "white", height: "1000px" }}>
        <img src={backgroundImg} style={{ width: "100%", height: "100%" }} />
      </div>
      <div
        style={{
          backgroundColor: "white",
          height: "1000px",
          overflowX: "auto",
        }}
      >
        <ProductCard />
      </div>

      <div style={{ backgroundColor: "gray", height: "1000px" }}></div>
      <div style={{ backgroundColor: "white", height: "1000px" }}></div>
    </>
  );
};

export default Home;

product list์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์žก๊ณ , ์นด๋“œ ์ปดํฌ๋„ŒํŠธ์— map์„ ํ†ตํ•ด ์ ์šฉํ•œ ๋’ค, home page์—์„œ ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ๊ตฌ์กฐ์ด๋‹ค.

4. ํ˜„์žฌ

์ฝ”๋“œ๋Š” ์กฐ์žกํ•˜๋‚˜ ๋””์ž์ธ์€ ๋งˆ์Œ์— ๋“ ๋‹ค.

More to read

AI

AI&ML ๊ธฐ์ดˆ

Reference: https&#x3A;//bettermesol.github.io/ml/2019/09/16/ai-ml-dl/AI: ๊ธฐ๊ณ„๊ฐ€ ์‚ฌ๋žŒ์ฒ˜๋Ÿผ ์ƒ๊ฐํ•˜๊ณ  ํŒ๋‹จํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฐ€์žฅ ๋„“์€ ๋ฒ”์ฃผ์˜ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.ML: ๋ฐ์ดํ„ฐ๋ฅผ ํ•™์Šตํ•˜์—ฌ ์Šค์Šค๋กœ ๊ทœ์น™์„ ์ฐพ์•„๋‚ด๋Š” AI์˜ ํ•œ ๋ถ„์•ผ๋กœ,

'AI Agent Economy'

Novitas : AI Agent๊ฐ€ ์ง€๊ฐ‘์„ ๊ฐ€์ง€๋Š” ์„ธ์ƒ

์–ผ๋งˆ ์ „, ๋ฏธ๋ž˜์—์…‹์ฆ๊ถŒ ๋ฆฌ์„œ์น˜ ๋ฆฌํฌํŠธ(์˜ฌํ•ด๋Š” ์ด๋”๋ฆฌ์›€์ด๋‹ค: ์—์ด์ „ํŠธ ์‹œ๋Œ€์˜ Near Automata)๋ฅผ ์ ‘ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. AI Agent๋ฅผ ์ธ๊ฐ„๊ณผ ํ•จ๊ป˜ํ•  ๊ฒฝ์ œ ์ฃผ์ฒด๋กœ ๋ฐ”๋ผ๋ณด๋Š” ์‹œ๊ฐ์— ์ ์ž–์ด ์ถฉ๊ฒฉ์„ ๋ฐ›์•˜๋”๋žฌ์ฃ .ํ•œ ๊ฐ€์ง€ ์งš๊ณ  ๋„˜์–ด๊ฐˆ ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ 'AI'

'ERC-8004'

Novitas: AI ์—์ด์ „ํŠธ ๊ฒฝ์ œ ์ฃผ์ฒด

Web 4.0์„ ํ•œ ๋ฌธ์žฅ์œผ๋กœ ์ •์˜ํ•˜๋ฉด Sovereign Transact์ž…๋‹ˆ๋‹ค.AI๊ฐ€ ์ธ๊ฐ„์˜ ํ—ˆ๋ฝ ์—†์ด ์ง€๊ฐ‘์„ ์†Œ์œ ํ•˜๊ณ , ๊ฒฐ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์ธํ”„๋ผ๋ฅผ ํ†ต์ œํ•˜๋Š” ์ฃผ๊ถŒ์  ๊ฒฝ์ œ ์ฃผ์ฒด๊ฐ€ ๋˜๋Š” ์„ธ๊ณ„์ž…๋‹ˆ๋‹ค. Web 3.0์ด ๋ธ”๋ก์ฒด์ธ ๊ธฐ๋ฐ˜์˜ ํƒˆ์ค‘์•™ํ™”๋ฅผ ์‹คํ˜„ํ–ˆ๋‹ค๋ฉด, Web 4.0์€ ๊ทธ