์ด๋ฐ์์ผ๋ก 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 |
'React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] useEffect (0) | 2022.08.09 |
---|---|
[React] Router (0) | 2022.08.02 |