React

[React] React bootstrap ๊ทธ๋ฆฌ๋“œ ๋‹ค๋ฃจ๊ธฐ + map์„ ํ™œ์šฉํ•ด์„œ ์•„์ดํ…œ ๋ฐฐ์น˜ํ•˜๊ธฐ

Alchemists 2022. 8. 2. 18:51
728x90

์ด๋Ÿฐ์‹์œผ๋กœ  1ํ–‰ 3์—ด์˜ ์•„์ดํ…œ ๋ฐฐ์น˜๋ฅผ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

์ด๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์€๊ฒŒ Grid์ธ๋ฐ React-Bootstrap ์—์„œ ์ œ๊ณตํ•˜๋Š” Grid๋ฅผ ์จ๋ณด๋ คํ•œ๋‹ค. 

 

https://react-bootstrap.netlify.app/layout/grid/#rb-docs-content

 

React-Bootstrap

The most popular front-end framework, rebuilt for React.

react-bootstrap.github.io

 

์—ฌ๊ธฐ์„œ ๋ณธ์ธ์ด ์›ํ•˜๋Š” ๊ทธ๋ฆฌ๋“œ ๋ ˆ์ด์•„์›ƒ์„ ์ฐพ์•„์„œ ์“ฐ๋ฉด ๋œ๋‹ค.

 

๋งŒ์•ฝ ๊ทธ๋ฆฌ๋“œ๋ฅผ ์ž˜ ๋ชจ๋ฅด๋Š”๋ฐ ๊ทธ๋ฆฌ๋“œ๋ฅผ ์จ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด

 

https://ibrahimovic.tistory.com/23

 

CSS ๊ทธ๋ฆฌ๋“œ 5๋ถ„๋งŒ์— ๋ฐฐ์šฐ๊ธฐ (Learn CSS Grid in 5 Minutes)

์ด ํฌ์ŠคํŠธ๋Š” Learn CSS Grid in 5 Minute ๋ฅผ ํ•œ๊ธ€๋กœ ๋ฒˆ์—ญํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. CSS ๊ทธ๋ฆฌ๋“œ 5๋ถ„๋งŒ์— ๋ฐฐ์šฐ๊ธฐ (Learn CSS Grid in 5 Minutes) ์›น ๋ ˆ์ด์•„์›ƒ์˜ ๋ฏธ๋ž˜๋ฅผ ์œ„ํ•œ ํ€ต ํŠœํ† ๋ฆฌ์–ผ ๊ทธ๋ฆฌ๋“œ ๋ ˆ์ด์•„์›ƒ์€ ์›น์‚ฌ์ดํŠธ ๋””์ž์ธ์˜..

ibrahimovic.tistory.com

 

์ด ๊ธ€์„ ์ฝ์–ด๋ณด๋Š”๊ฑธ ์ถ”์ฒœํ•œ๋‹ค. 

 

๊ทธ๋ฆฌ๊ณ  ๋ฆฌ์•กํŠธ boot strap์„ ์“ฐ๊ธฐ ์œ„ํ•ด์„œ ๋ช‡๊ฐ€์ง€ ์„ค์ •์„ ํ•ด์•ผํ•˜๋Š”๋ฐ 

 

npm install react-bootstrap bootstrap

ํ„ฐ๋ฏธ๋„ ์—ด๊ณ  cd ๋‚ด๊ฐ€ ์ž‘์—…ํ•˜๋Š” ํด๋” ํ•œ ๋‹ค์Œ์— ์ € ๋ช…๋ น์–ด ์ณ์„œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  index.js๋กœ ๊ฐ€์„œ

import 'bootstrap/dist/css/bootstrap.css'

๊ผญ ๋„ฃ์–ด์ฃผ๋„๋ก ํ•˜์ž. 

 

๊ทธ๋ฆฌ๋“œ ๋ ˆ์ด์•„์›ƒ์„ ์ •ํ•˜๋ฉด Row์™€ Col, Container์„ ์“ฐ๊ธฐ ์œ„ํ•ด ํŒŒ์ผ ์ƒ๋‹จ์— import ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

(๋งŒ์•ฝ ๋ญ”๊ฐ€ ๋‹ค๋ฅด๋‹ค๋ฉด ๋ฆฌ์•กํŠธ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์ฝ์–ด๋ณด๋Š”๊ฑธ ์ถ”์ฒœํ•œ๋‹ค)

 

 

row๋ฅผ ํ•˜๋‚˜ ์„ค์ •ํ•œ ๋‹ค์Œ ๊ทธ ์•ˆ์— map์œผ๋กœ ๊ฐ์ฒด๋ฅผ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด์„œ col๋กœ ๊ฐ์‹ธ์„œ (1ํ–‰์— 3๊ฐœ์˜ ์—ด์ด ํ•„์š”ํ•˜๋‹ˆ๊นŒ) ํ™”๋ฉด์— ๋„์šฐ๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.

 

๊ณ„์† ํ™”๋ฉด์— ์•ˆ๋œจ๋Š” ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ ์•Œ๊ณ ๋ณด๋‹ˆ  return์„ ์•ˆํ•ด์„œ์˜€๋‹ค;;;ใ…‹ใ…‹ ์ด๋Ÿฐ ์–ด์ฒ˜๊ตฌ๋‹ˆ ์—†๋Š” 

์‹ค์ˆ˜๋ฅผ ํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ํ™•์ธํ•ด์ฃผ์ž.

 

ShoesData์ปดํฌ๋„ŒํŠธ๋Š” map์„ ํ†ตํ•ด์„œ ๋ฐฐ์—ด์— n๋ฒˆ์งธ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ๋ฝ‘์•„์ฃผ๋ฉด (์ด๊ฒŒ item์ด ๋œ๋‹ค) 

์ด๊ฑธ props๋กœ ๋ฐ›๋Š”๋‹ค.

 

 

์ด๋ฏธ์ง€, ์ƒํ’ˆ๋ช…, ์ƒํ’ˆ๊ฐ€๊ฒฉ์„ ๋ฆฌํ„ดํ•˜๋Š”๊ฒŒ ShoesData ์ปดํฌ๋„ŒํŠธ์ด๋‹ค.

 

 

์ตœ์ข…์ฝ”๋“œ

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import logo from './logo.svg';
import './App.css';
import {useState} from 'react';
import Button from 'react-bootstrap/Button';
import Container from 'react-bootstrap/Container';
import Nav from 'react-bootstrap/Nav';
import Navbar from 'react-bootstrap/Navbar';
import image from './ny.jpg';
import Row from 'react-bootstrap/Row';
import Col from 'react-bootstrap/Col';
 
import data from './data.js';
 
function ShoesData({item,idx}){
  console.log(item);
  
  return(
    <div key={idx}>
        
          <img src={item.img} width="50%"></img>
          <h4>{item.title}</h4>
          <p>{item.price}</p>
       
    </div>
 
  );
 
}
 
function App() {
 
  const[shoes]=useState(data);
  console.log(shoes);
 
 
    return(
      <div>
        <Navbar bg="dark" variant="dark">
        <Container>
          <Navbar.Brand href="#home">์˜ค๋Š˜์˜ ๊ธฐ๋ถ„์€!</Navbar.Brand>
          <Nav className="me-auto">
            <Nav.Link href="#home">Home</Nav.Link>
            <Nav.Link href="#features">Features</Nav.Link>
            <Nav.Link href="#pricing">Pricing</Nav.Link>
          </Nav>
        </Container>
      </Navbar>
      <div className="main-bg" style={{backgroundImage:`url(${image})`}} ></div>
      <div className="container">
      
        <Container>
          <Row>
            {shoes.map((item,idx)=>{
              return (
                <Col>
                  <ShoesData item={item} idx={idx}/>
                
                </Col>
 
              );
 
            })}
            
            
            
            
          </Row>
        
        </Container>
 
      </div>
      
      </div>
 
    );
}
 
export default App;
cs
728x90

'React' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[React] useEffect  (0) 2022.08.09
[React] Router  (0) 2022.08.02