Zoeeey
Stack flows in you
Zoeeey
  • 분류 전체보기 (155)
    • 💡 UXUI (4)
      • UXUI (2)
      • UI (2)
      • UX (0)
    • 🟨 JavaScript (66)
      • 개념 (42)
      • 정리 (2)
      • 문제풀기 (프로그래머스, 코딩애플) (15)
      • 응용하여 자동화or문제해결하기 (2)
      • 기타 (5)
    • ⚛️ React (49)
      • 개념 (27)
      • 개념(Redux) (3)
      • 정리 (4)
      • 문제풀기 (코딩애플: React) (15)
    • 📘 TypeScript (10)
      • 개념 (8)
      • 문제풀기 (코딩애플) (2)
    • 🌐 HTML,CSS (18)
      • 실무에서 자주 발생한 오류들 (10)
      • 뒤늦게 알아서 뼈아픈 유용한 CSS (6)
      • 기타 자주 쓰는 CSS (2)
    • 💻 CS (8)
      • CS (5)
      • 정규표현식 (2)
      • Git,Github (1)

태그

  • 삼항연산자
  • Ajax
  • 오류
  • 프로그래머스
  • state
  • CSS
  • 코딩애플
  • TypeScript
  • array
  • object
  • react
  • useEffect
  • redux
  • Props
  • axios
  • JavaScript
  • CS
  • class
  • json
  • UXUI
전체 방문자
오늘
어제
hELLO · Designed By 정상우.
Zoeeey

Stack flows in you

⚛️ React/문제풀기 (코딩애플: React)

React : 데이터 바인딩해서 컴포넌트로 뿌리기 (템플릿 리터럴 Template literal)

2023. 5. 18. 12:30

데이터 바인딩해서 컴포넌트로 뿌리기

조건

data.js로 분리되어있는 data를 바인딩해서 컴포넌트로 만들어 여러 상품을 한번에 뿌려야 한다.


풀이

function App() {
  let [shoes] = useState(data);
  
  return (
    <div className="App">
      <Navbar bg="dark" variant="dark">
        <Container>
        <Navbar.Brand href="#home">ShoeShop</Navbar.Brand>
        <Nav className="me-auto">
          <Nav.Link href="#home">Home</Nav.Link>
          <Nav.Link href="#cart">Cart</Nav.Link>
          <Nav.Link href="#pricing">Pricing</Nav.Link>
        </Nav>
        </Container>
      </Navbar>

      <div className="main-bg" style={{backgroundImage : 'url('+ mainBg +')'}}></div>

      <div className="container">
        <div className="row">
          {
            shoes.map(function(a, i){
              return (
                <Product shoes={shoes} i={i}/>
              )
            })
          }
        </div>
      </div>
    </div>
  );
}
function Product(props){
  return (
    <div className="col-md-4">
      <img src={`${process.env.PUBLIC_URL}/shoes${props.i + 1}.jpg`} width="80%" />
      <h4>{props.shoes[props.i].title}</h4>
      <p>{props.shoes[props.i].price}</p>
    </div>
  )
}

알게 된 점

중괄호({}) 내에서 문자열에 변수를 포함시키려면 템플릿 리터럴(Template literal) 문법을 사용해야한다. 템플릿 리터럴은 백틱(``)으로 감싸며, 변수를 ${} 안에 넣어서 문자열과 결합할 수 있다.

<img src={`${process.env.PUBLIC_URL}/shoes${props.i + 1}.jpg`} width="80%" />

그래서 위쪽 inline style 속성도 아래처럼 두 가지로도 쓸 수 있다.

<div className="main-bg" style={{backgroundImage : 'url('+ mainBg +')'}}></div>
<div className="main-bg" style={{backgroundImage : `url(${mainBg})`}}></div>

출처 : 코딩애플 https://codingapple.com/

저작자표시 비영리 동일조건 (새창열림)

'⚛️ React > 문제풀기 (코딩애플: React)' 카테고리의 다른 글

React : 2초 뒤에 사라지는 alert 만들기 (useEffect, 숏서킷평가)  (0) 2023.05.23
React : 가나다정렬되어도 끄떡없는 상세페이지 불러오기 (useParams, find())  (1) 2023.05.22
React : input에 글 쓰면 게시글 추가하기 (onChange, 매개변수, trim, splice)  (0) 2023.05.11
React : 클릭한 글의 제목이 모달에 뜨게 만들기 (props, 삼항연산자)  (0) 2023.05.08
React : 좋아요버튼 만들기 (숏서킷평가,삼항연산자)  (0) 2023.05.02
    '⚛️ React/문제풀기 (코딩애플: React)' 카테고리의 다른 글
    • React : 2초 뒤에 사라지는 alert 만들기 (useEffect, 숏서킷평가)
    • React : 가나다정렬되어도 끄떡없는 상세페이지 불러오기 (useParams, find())
    • React : input에 글 쓰면 게시글 추가하기 (onChange, 매개변수, trim, splice)
    • React : 클릭한 글의 제목이 모달에 뜨게 만들기 (props, 삼항연산자)
    Zoeeey
    Zoeeey
    길게 생각하고 짧게 그리기

    티스토리툴바