ReactJSアプリでBootstrap CSSとJSを導入する4つの方法
ReactJSアプリでBootstrap CSSとJSを導入する
方法1: npm パッケージを使用する
- プロジェクトディレクトリで以下のコマンドを実行して、BootstrapとReact-Bootstrapパッケージをインストールします。
npm install bootstrap react-bootstrap
- アプリのメインファイル(例:
App.js
)で、以下のコードを追加します。
import 'bootstrap/dist/css/bootstrap.min.css';
import { BrowserRouter as Router, Route } from 'react-router-dom';
import { Navbar, Nav, NavItem } from 'react-bootstrap';
function App() {
return (
<Router>
<div>
<Navbar>
<Navbar.Header>
<Navbar.Brand>
My App
</Navbar.Brand>
</Navbar.Header>
<Nav>
<NavItem href="/">Home</NavItem>
<NavItem href="/about">About</NavItem>
</Nav>
</Navbar>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
</div>
</Router>
);
}
export default App;
このコードは、Bootstrap CSSとJSをアプリに読み込み、React-Bootstrapコンポーネントを使用できるようにします。
方法2: CDNを使用する
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My App</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
</head>
<body>
<div id="root"></div>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
<script src="https://unpkg.com/react@18/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/[email protected]/dist/react-bootstrap.min.js"></script>
<script src="./main.js"></script>
</body>
</html>
このコードは、Bootstrap CSSとJSファイルをCDNから直接読み込みます。
方法3: Webpackを使用する
npm install webpack webpack-cli babel-loader css-loader style-loader
webpack.config.js
ファイルを作成し、以下のコードを追加します。
module.exports = {
entry: './main.js',
output: {
filename: 'bundle.js',
path: __dirname + '/dist'
},
module: {
rules: [
{
test: /\.css$/,
use: [
'style-loader',
'css-loader'
]
},
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env', '@babel/preset-react']
}
}
}
]
}
};
方法1: npm パッケージを使用する
// App.js
import 'bootstrap/dist/css/bootstrap.min.css';
import { BrowserRouter as Router, Route } from 'react-router-dom';
import { Navbar, Nav, NavItem } from 'react-bootstrap';
function App() {
return (
<Router>
<div>
<Navbar>
<Navbar.Header>
<Navbar.Brand>
My App
</Navbar.Brand>
</Navbar.Header>
<Nav>
<NavItem href="/">Home</NavItem>
<NavItem href="/about">About</NavItem>
</Nav>
</Navbar>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
</div>
</Router>
);
}
export default App;
方法2: CDNを使用する
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My App</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
</head>
<body>
<div id="root"></div>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
<script src="https://unpkg.com/react@18/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/[email protected]/dist/react-bootstrap.min.js"></script>
<script src="./main.js"></script>
</body>
</html>
方法3: Webpackを使用する
// webpack.config.js
module.exports = {
entry: './main.js',
output: {
filename: 'bundle.js',
path: __dirname + '/dist'
},
module: {
rules: [
{
test: /\.css$/,
use: [
'style-loader',
'css-loader'
]
},
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env', '@babel/preset-react']
}
}
}
]
}
};
// main.js
import React from 'react';
import ReactDOM from 'react-dom';
import Bootstrap from 'bootstrap/dist/js/bootstrap.bundle.min';
const App = () => {
return (
<div>
<h1>My App</h1>
<button type="button" className="btn btn-primary">Click me!</button>
</div>
);
};
ReactDOM.render(<App />, document.getElementById('root'));
Bootstrap.start();
Bootstrap CSSとJSをReactJSアプリに導入するその他の方法
方法4: Sassを使用する
BootstrapはSassで書かれています。 Sassを使用すれば、Bootstrapの変数を変更したり、独自のスタイルを簡単に作成することができます。
npm install sass node-sass sass-loader
module.exports = {
// ...
module: {
rules: [
// ...
{
test: /\.scss$/,
use: [
'style-loader',
'css-loader',
'sass-loader'
]
}
]
}
};
- アプリのメインファイル(例:
App.js
)で、BootstrapのSassファイルをインポートします。
import 'bootstrap/scss/bootstrap.scss';
function App() {
// ...
}
export default App;
方法5: PostCSSを使用する
PostCSSは、CSSを処理するためのツールです。 PostCSSを使用すれば、Autoprefixerなどのプラグインを使用して、ブラウザの互換性を向上させることができます。
npm install postcss postcss-loader autoprefixer
module.exports = {
// ...
module: {
rules: [
// ...
{
test: /\.css$/,
use: [
'style-loader',
'css-loader',
{
loader: 'postcss-loader',
options: {
plugins: [
autoprefixer()
]
}
}
]
}
]
}
};
方法6: Yarnを使用する
npmの代わりにYarnを使用することもできます。 Yarnは、npmよりも高速で安全なパッケージマネージャーです。
npm install --global yarn
yarn add bootstrap react-bootstrap
Bootstrap CSSとJSをReactJSアプリに導入するにはいくつかの方法があります。 どの方法を選択するかは、プロジェクトの要件と開発者の好みによって異なります。
補足
上記は基本的な方法です。 詳細については、以下のリソースを参照してください。
twitter-bootstrap reactjs webpack