1. React BootStrap
-
BootStrap
- ์ ๋ช ํ front-end ์คํ์์ค toolkit
- jQuery์ ๊ฐํ๊ฒ ๊ฒฐํฉ / ๋ฐ์ํ ์น์ ํนํ
-
React BootStrap
- BootStrap ๊ฐ๋ฐํ๋ค์ด jQuery์ ๊ฑฐํ๊ณ React์ ๋ง๊ฒ ์์ฑํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ๋ฐ์ํ ์น : xs | md | lg
- Sass : @importํด์ ์ธ ์ ์์
- ์ต์ํ UI : Bootstrap์ ๊ทธ๋๋ก ๊ฐ์ ธ์ด
- https://react-bootstrap.github.io/
1npm install react-bootstrap bootstrap
2. ์์ 1 : ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
2.1 App.js
1// Webpack CSS import2// import 'onsenui/css/onsenui.css';3// import 'onsenui/css/onsen-css-components.css';4// import OnesenUIExample from './components/OnsenUI/OnesenUIExample';5// import AntDesignExample from './components/AntDesign/AntDesignExample';6// import 'semantic-ui-css/semantic.min.css';7// import ReactSemanticUIExample from './components/ReactSemanticUI/ReactSemanticUIExample';89import 'bootstrap/dist/css/bootstrap.min.css'10import ReactBootstrapExample from './components/ReactBootstrap/ReactBootstrapExample'1112export default function App() {13return (14<>15<ReactBootstrapExample />16{/* <ReactSemanticUIExample /> */}17{/* <AntDesignExample /> */}18{/* <OnesenUIExample /> */}19</>20)21}
2.2 AlertDismissible
1import React, { useState } from 'react'2import { Alert, Button } from 'react-bootstrap'34export default function AlertDismissible() {5const [show, setShow] = useState(false)67return (8<>9<Alert show={show} variant="success">10<Alert.Heading>How's it going?!</Alert.Heading>11<p>12Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis13consectetur purus sit amet fermentum.14</p>15<hr />16<div className="d-flex justify-content-end">17<Button onClick={() => setShow(false)} variant="outline-success">18Close me y'all!19</Button>20</div>21</Alert>2223{!show && <Button onClick={() => setShow(true)}>Show Alert</Button>}24</>25)26}
2.3 ReactBootstrapExample
1import React from 'react'2import AlertDismissible from './AlertDismissible'34export default function ReactBootstrapExample() {5return (6<div>7<AlertDismissible />8</div>9)10}
3. ์์ 2 : ๋ฐ์ํ
1/* grid.css */2.col-color {3border: 1px solid red;4background-color: pink;5}
1import { Container, Row, Col } from 'react-bootstrap'2import './grid.css'34export default function GridExample() {5return (6<Container>7{/* Stack the columns on mobile by making one full-width and the other half-width */}8<Row>9<Col xs={12} md={8} className="col-color">10xs=12 md=811</Col>12<Col className="col-color" xs={6} md={4}>13xs=6 md=414</Col>15</Row>1617{/* Columns start at 50% wide on mobile and bump up to 33.3% wide on desktop */}18<Row>19<Col className="col-color" xs={6} md={4}>20xs=6 md=421</Col>22<Col className="col-color" xs={6} md={4}>23xs=6 md=424</Col>25<Col className="col-color" xs={6} md={4}>26xs=6 md=427</Col>28</Row>2930{/* Columns are always 50% wide, on mobile and desktop */}31<Row>32<Col className="col-color" xs={6}>33xs=634</Col>35<Col className="col-color" xs={6}>36xs=637</Col>38</Row>39</Container>40)41}42import AlertDismissible from './AlertDismissible'43import GridExample from './GridExample'4445export default function ReactBootstrapExample() {46return (47<div>48<GridExample />49<AlertDismissible />50</div>51)52}
4. ์์ 3 : ๋ฒํผ
1import { Button, ButtonGroup } from 'react-bootstrap'23export default function ButtonExample() {4return (5<>6<ButtonGroup size="lg" className="mb-2">7<Button>Left</Button>8<Button>Middle</Button>9<Button>Right</Button>10</ButtonGroup>1112<ButtonGroup className="mb-2">13<Button>Left</Button>14<Button>Middle</Button>15<Button>Right</Button>16</ButtonGroup>1718<ButtonGroup size="sm">19<Button>Left</Button>20<Button>Middle</Button>21<Button>Right</Button>22</ButtonGroup>23</>24)25}
ReactBootstrapExample.jsx์ ์ถ๊ฐ