Все мы знаем популярность React и то, как эта библиотека упростила задачи разработки для фронтенд-разработчиков. React — самая популярная интерфейсная библиотека для создания пользовательского интерфейса приложения. Отрасли постепенно сокращают использование библиотек jQuery и DOM для создания своих приложений.
Когда дело доходит до создания адаптивного приложения, на рынке полезны фреймворки CSS. Если вы работаете фронтенд-разработчиком, то фреймворки Bootstrap, Foundation и Bulma для вас не новы. Большинство отраслей используют фреймворк Bootstrap. Миллионы веб-сайтов работают в режиме начальной загрузки.
В этом блоге мы собираемся обсудить, как использовать React и Bootstrap, как добавить bootstrap в приложение React. Как установить пакет начальной загрузки React и как использовать его в приложении React. Начнем с этого…
Метод добавления Bootstrap в React
В основном есть три способа добавить Bootstrap в приложение React. Обсудим их по очереди.
- Использование Bootstrap CDN.
- Импортировать Bootstrap в React как зависимость
- Установите пакет React Bootstrap (например, bootstrap-react или reactstrap).
1. Использование Bootstrap CDN
Это один из самых простых способов использовать бутстрап в вашем приложении React. Лучшее в загрузочном CDN — это отсутствие необходимости в установке или загрузке. Вам просто нужно скопировать и вставить ссылку в заголовок вашего приложения, чтобы оно заработало. Ниже находится ссылка, которая вам нужна.
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">
Если вашему приложению нужны компоненты JavaScript вместе с начальной загрузкой, то в нижней части страницы разместите тег </body>.
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
Эти фрагменты будут добавлены на страницу public / index.html.
2. Импортировать Bootstrap как зависимость
Возможно, вы использовали какой-нибудь сборщик модулей или веб-пакет в своем приложении, или вы могли слышать эти имена. Это еще один вариант добавления начальной загрузки в ваше приложение React. Вы можете запустить приведенную ниже команду и установить загрузочную программу в качестве зависимости в вашем приложении.
npm install bootstrap
После установки добавьте это в файл JavaScript записи вашего приложения. Ниже находится файл index.js внутри папки src.
import 'bootstrap/dist/css/bootstrap.min.css'; import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; import registerServiceWorker from './registerServiceWorker'; ReactDOM.render(<App />, document.getElementById('root')); registerServiceWorker();
В приведенном выше коде в верхней строке мы импортировали минимизированный CSS Bootstrap в качестве первой зависимости. Благодаря этому мы можем использовать классы Bootstrap в наших компонентах React. Вам также необходимо установить вместе с ним jQuery и popper.js. Ниже приведена команда для их установки.
npm install jquery popper.js
Внесите следующие изменения в файл index.js, чтобы добавить новые зависимости.
import 'bootstrap/dist/css/bootstrap.min.css'; import $ from 'jquery'; import Popper from 'popper.js'; import 'bootstrap/dist/js/bootstrap.bundle.min'; import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; import registerServiceWorker from './registerServiceWorker'; ReactDOM.render(<Dropdown />, document.getElementById('root')); registerServiceWorker();
3. Установите пакет React Bootstrap.
Другой метод добавления начальной загрузки в ваш компонент React — это добавление пакета со встроенным компонентом начальной загрузки. Они предназначены для работы с вашими компонентами приложения React. Ниже приведены названия двух популярных пакетов.
- react-bootstrap
- reactstrap
Оба являются хорошим выбором для использования Bootstrap с приложениями React.
Создайте приложение React с помощью Bootstrap
Используйте приведенную ниже команду, чтобы создать приложение React на вашем компьютере.
create-react-app my-app
Теперь запустите приведенную ниже команду, чтобы установить зависимости, как указано ниже.
yarn add axios bootstrap reactstrap
Здесь мы установили Axios в качестве зависимости, которая представляет собой библиотеку JavaScript, используемую для выполнения HTTP-запроса из node.js или XMLHttpRequests из браузера. Axios позволяет получать сообщения из JSON API BaconIpsum.
Теперь, чтобы использовать этот миниатюрный файл CSS Bootstrap. вам нужно внести некоторые изменения в файл src / index.js, чтобы включить его. Он будет выглядеть примерно так, как показано ниже…
import 'bootstrap/dist/css/bootstrap.min.css'; import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; import registerServiceWorker from './registerServiceWorker'; ReactDOM.render(<App />, document.getElementById('root')); registerServiceWorker();
Теперь создайте компонент папки в каталоге src вашего проекта. Создайте новый файл Header.js и напишите в нем код, приведенный ниже.
import React from 'react'; import logo from '../logo.svg'; import { Container, Row, Col, Form, Input, Button, Navbar, Nav, NavbarBrand, NavLink, NavItem, UncontrolledDropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap'; const AVATAR = 'https://www.gravatar.com/avatar/429e504af19fc3e1cfa5c4326ef3394c?s=240&d=mm&r=pg'; const Header = () => ( <header> <Navbar fixed="top" color="light" light expand="xs" className="border-bottom border-gray bg-white" style={{ height: 80 }}> <Container> <Row noGutters className="position-relative w-100 align-items-center"> <Col className="d-none d-lg-flex justify-content-start"> <Nav className="mrx-auto" navbar> <NavItem className="d-flex align-items-center"> <NavLink className="font-weight-bold" href="/"> <img src={AVATAR} alt="avatar" className="img-fluid rounded-circle" style={{ width: 36 }} /> </NavLink> </NavItem> <NavItem className="d-flex align-items-center"> <NavLink className="font-weight-bold" href="/">Home</NavLink> </NavItem> <NavItem className="d-flex align-items-center"> <NavLink className="font-weight-bold" href="/">Electronics</NavLink> </NavItem> <UncontrolledDropdown className="d-flex align-items-center" nav inNavbar> <DropdownToggle className="font-weight-bold" nav caret>fashion</DropdownToggle> <DropdownMenu right> <DropdownItem className="font-weight-bold text-secondary text-uppercase" header disabled>Learn React</DropdownItem> <DropdownItem divider /> <DropdownItem>Men</DropdownItem> <DropdownItem>Women</DropdownItem> <DropdownItem>Baby and Kids</DropdownItem> </DropdownMenu> </UncontrolledDropdown> </Nav> </Col> <Col className="d-flex justify-content-xs-start justify-content-lg-center"> <NavbarBrand className="d-inline-block p-0" href="/" style={{ width: 80 }}> <img src={logo} alt="logo" className="position-relative img-fluid" /> </NavbarBrand> </Col> <Col className="d-none d-lg-flex justify-content-end"> <Form inline> <Input type="search" className="mr-3" placeholder="Search React Courses" /> <Button type="submit" color="info" outline>Search</Button> </Form> </Col> </Row> </Container> </Navbar> </header> ); export default Header;
В приведенный выше код мы включили меню навигации. Теперь создадим в каталоге компонента файл LeftCard.js со следующим содержимым:
import React, { Fragment } from 'react'; import { Button, UncontrolledAlert, Card, CardImg, CardBody, CardTitle, CardSubtitle, CardText } from 'reactstrap'; const BANNER = 'https://i.imgur.com/CaKdFMq.jpg'; const LeftCard = () => ( <Fragment> <UncontrolledAlert color="danger" className="d-none d-lg-block"> <strong>Account not activated.</strong> </UncontrolledAlert> <Card> <CardImg top width="100%" src={BANNER} alt="banner" /> <CardBody> <CardTitle className="h3 mb-2 pt-2 font-weight-bold text-secondary">Lorem Ipsum</CardTitle> <CardSubtitle className="text-secondary mb-3 font-weight-light text-uppercase" style={{ fontSize: '0.8rem' }}>Lorem Ipsum, Lagos</CardSubtitle> <CardText className="text-secondary mb-4" style={{ fontSize: '0.75rem' }}>Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book</CardText> <Button color="success" className="font-weight-bold">Lorem Ipsum</Button> </CardBody> </Card> </Fragment> ); export default LeftCard;
Теперь создайте файл Post.js в каталоге компонентов и добавьте приведенные ниже фрагменты…
import React, { Component, Fragment } from 'react'; import axios from 'axios'; import { Badge } from 'reactstrap'; class Post extends Component { state = { post: null } componentDidMount() { axios.get('https://baconipsum.com/api/?type=meat-and-filler¶s=4&format=text') .then(response => this.setState({ post: response.data })); } render() { return ( <Fragment> { this.state.post && <div className="position-relative"> <span className="d-block pb-2 mb-0 h6 text-uppercase text-info font-weight-bold"> Editor's Pick <Badge pill color="success" className="text-uppercase px-2 py-1 ml-3 mb-1 align-middle" style={{ fontSize: '0.75rem' }}>New</Badge> </span> <span className="d-block pb-4 h2 text-dark border-bottom border-gray">React Tutorial</span> <article className="pt-5 text-secondary text-justify" style={{ fontSize: '0.9rem', whiteSpace: 'pre-line' }}>{this.state.post}</article> </div> } </Fragment> ); } } export default Post;
Приведенный выше фрагмент отображает сообщения на странице. В приведенном выше коде состояние сообщения будет инициализировано значением null. Когда страница React отобразится и компонент будет смонтирован, мы извлекаем четыре абзаца из BaconIpsum JSON API с помощью Axios. После этого состояние будет изменено для свойства post.
Внесите окончательную модификацию в файл src / App.js, как показано ниже…
import React, { Fragment } from 'react'; import axios from 'axios'; import { Container, Row, Col } from 'reactstrap'; import Post from './components/Post'; import Header from './components/Header'; import LeftCard from './components/LeftCard'; const App = () => ( <Fragment> <Header /> <main className="my-5 py-5"> <Container className="px-0"> <Row noGutters className="pt-2 pt-md-5 w-100 px-4 px-xl-0 position-relative"> <Col xs={{ order: 2 }} md={{ size: 4, order: 1 }} tag="aside" className="pb-5 mb-5 pb-md-0 mb-md-0 mx-auto mx-md-0"> <SideCard /> </Col> <Col xs={{ order: 1 }} md={{ size: 7, offset: 1 }} tag="section" className="py-5 mb-5 py-md-0 mb-md-0"> <Post /> </Col> </Row> </Container> </main> </Fragment> ); export default App;
Заключение
Итак, мы обсудили несколько способов включения начальной загрузки в приложение React. Мы также обсудили использование библиотеки response-bootstrap. Оповещение, значок, панель навигации, раскрывающийся список, кнопка, карточка, навигация, форма и т. Д. Являются общими компонентами библиотеки начальной загрузки в React, которые вы будете часто использовать. Другими полезными компонентами являются таблицы, модальные окна, всплывающие подсказки, карусель, jumbotron, разбиение на страницы, вкладки и т. Д. React bootstrap очень полезен для создания макета и проектирования пользовательского интерфейса вашего веб-сайта. Как только вы начнете использовать его, вы узнаете, как использовать его компоненты.