React Bootstrap
React Bootstrap
React Bootstrap
Single-page applications gaining popularity over the last few years, so many front-end frameworks
have introduced such as Angular, React, Vue.js, Ember, etc. As a result, jQuery is not a necessary
requirement for building web apps. Today, React has the most used JavaScript framework for building
web applications, and Bootstrap become the most popular CSS framework. So, it is necessary to learn
various ways in which Bootstrap can be used in React apps, which is the main aim of this section.
2. Bootstrap as Dependency
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min
ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="ano
https://www.javatpoint.com/react-bootstrap 1/6
7/31/22, 3:15 PM React Bootstrap - javatpoint
If there is a need to use Bootstrap components which depend on JavaScript/jQuery in the React
application, we need to include jQuery, Popper.js, and Bootstrap.js in the document. Add the
following imports in the <script> tags near the end of the closing </body> tag of
the index.html file.
In the above snippet, we have used jQuery's slim version, although we can also use the full version as
well. Now, Bootstrap is successfully added in the React application, and we can use all the CSS utilities
and UI components available from Bootstrap in the React application.
Bootstrap as Dependency
If we are using a build tool or a module bundler such as Webpack, then importing Bootstrap as
dependency is the preferred option for adding Bootstrap to the React application. We can install
Bootstrap as a dependency for the React app. To install the Bootstrap, run the following commands in
the terminal window.
$ npm install bootstrap --save
https://www.javatpoint.com/react-bootstrap 2/6
7/31/22, 3:15 PM React Bootstrap - javatpoint
Once Bootstrap is installed, we can import it in the React application entry file. If the React project
created using the create-react-app tool, open the src/index.js file, and add the following code:
import 'bootstrap/dist/css/bootstrap.min.css';
Now, we can use the CSS classes and utilities in the React application. Also, if we want to use the
JavaScript components, we need to install the jquery and popper.js packages from npm. To install
the following packages, run the following command in the terminal window.
$ npm install jquery popper.js
import $ from 'jquery';
import Popper from 'popper.js';
import 'bootstrap/dist/js/bootstrap.bundle.min';
2. reactstrap: It is a library which contains React Bootstrap 4 components that favor composition
and control. It does not depend on jQuery or Bootstrap JavaScript. However, react-popper is
needed for advanced positioning of content such as Tooltips, Popovers, and auto-flipping
Dropdowns.
https://www.javatpoint.com/react-bootstrap 3/6
7/31/22, 3:15 PM React Bootstrap - javatpoint
$ npx create-react-app react-bootstrap-app
After creating the React app, the best way to install Bootstrap is via the npm package. To install
Bootstrap, navigate to the React app folder, and run the following command.
$ npm install react-bootstrap bootstrap --save
Importing Bootstrap
Now, open the src/index.js file and add the following code to import the Bootstrap file.
import 'bootstrap/dist/css/bootstrap.min.css';
We can also import individual components like import { SplitButton, Dropdown } from 'react-
bootstrap'; instead of the entire library. It provides the specific components which we need to use,
and can significantly reduce the amount of code.
In the React app, create a new file named ThemeSwitcher.js in the src directory and put the following
code.
import React, { Component } from 'react';
import { SplitButton, Dropdown } from 'react-bootstrap';
class ThemeSwitcher extends Component {
state = { theme: null }
chooseTheme = (theme, evt) => {
evt.preventDefault();
if (theme.toLowerCase() === 'reset') { theme = null }
this.setState({ theme });
}
render() {
const { theme } = this.state;
const themeClass = theme ? theme.toLowerCase() : 'default';
https://www.javatpoint.com/react-bootstrap 4/6
7/31/22, 3:15 PM React Bootstrap - javatpoint
const parentContainerStyles = {
position: 'absolute',
height: '100%',
width: '100%',
display: 'table'
};
const subContainerStyles = {
position: 'relative',
height: '100%',
width: '100%',
display: 'table-cell',
};
return (
<div style={parentContainerStyles}>
<div style={subContainerStyles}>
<span className={`h1 center-block text-
center text-${theme ? themeClass : 'muted'}`} style={{ marginBottom: 25 }}>{theme || 'Default'}
</span>
<div className="center-block text-center">
<SplitButton bsSize="large" bsStyle={themeClass} title=
{`${theme || 'Default Block'} Theme`}>
<Dropdown.Item eventKey="Primary Block" onSelect=
{this.chooseTheme}>Primary Theme</Dropdown.Item>
<Dropdown.Item eventKey="Danger Block" onSelect=
{this.chooseTheme}>Danger Theme</Dropdown.Item>
<Dropdown.Item eventKey="Success Block" onSelect=
{this.chooseTheme}>Success Theme</Dropdown.Item>
<Dropdown.Item divider />
<Dropdown.Item eventKey="Reset Block" onSelect=
{this.chooseTheme}>Default Theme</Dropdown.Item>
</SplitButton>
</div>
</div>
</div>
https://www.javatpoint.com/react-bootstrap 5/6
7/31/22, 3:15 PM React Bootstrap - javatpoint
);
}
}
export default ThemeSwitcher;
Index.js
import 'bootstrap/dist/css/bootstrap.min.css';
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App.js';
import './index.css';
import ThemeSwitcher from './ThemeSwitcher';
ReactDOM.render(<ThemeSwitcher />, document.getElementById('root'));
Output
When we execute the React app, we should get the output as below.
https://www.javatpoint.com/react-bootstrap 6/6