Como incluir bootstrap css e js no aplicativo reactjs?

135

Eu sou newb para reactjs, quero incluir bootstrap no meu aplicativo react

Eu instalei o bootstrap por npm install bootstrap --save

Agora, deseja carregar o bootstrap css e js no meu aplicativo de reação.

Estou usando o webpack.

webpack.config.js

var config = {
    entry: './src/index',

    output: {
        path: './',
        filename: 'index.js'
    },

    devServer: {
        inline: true,
        port: 8080,
        historyApiFallback: true,
        contentBase:'./src'
    },

    module: {
        loaders: [
            {
                test: /\.js?$/,
                exclude: /node_modules/,
                loader: 'babel',

                query: {
                    presets: ['es2015', 'react']
                }
            }
        ]
    }
};

module.exports = config;

Meu problema é "como incluir bootstrap css e js no aplicativo reactjs do node_modules?" Como configurar o bootstrap para incluir no meu aplicativo de reação?

Mehul Mali
fonte
Você está usando o Node.js no back-end?
DanielKhan
Basta importar arquivos Bootstrap na sua página HTML
Mistalis 14/10
@DanielKhan: Não, não estou usando o Node.js.
Mehul Mali 14/10
Você está usando a versão menos do bootstrap ou apenas o CSS simples? Para este último, basta incluir o css usando a versão CDN e reagirmos a inicialização da parte do JavaScript.
DanielKhan
@DanielKhan Eu usei css simples. Eu não quero CDN. Eu quero usar o bootstrap de node_modules.
Mehul Mali 14/10

Respostas:

245

Se você é novo no React e usa a create-react-appinstalação cli, execute o comando npm abaixo para incluir a versão mais recente do bootstrap.

npm install --save bootstrap

ou

npm install --save bootstrap@latest

Em seguida, adicione a seguinte declaração de importação ao index.jsarquivo. ( https://getbootstrap.com/docs/4.4/getting-started/webpack/#importing-compiled-css )

import '../node_modules/bootstrap/dist/css/bootstrap.min.css';

ou

import 'bootstrap/dist/css/bootstrap.min.css';

não se esqueça de usar classNamecomo atributo nos elementos de destino (reagir usa classNamecomo atributo em vez de class).

Praveen MP
fonte
1
Se você deseja usar o Bootstrap 4, use o seguinte comando: npm install [email protected] --save (a partir de agora o comando de instalação acima instalará a última versão estável do Bootstrap, que é 3.3.7)
lgants
5
Relative imports outside of src/ are not supported.
riv
3
Eu não entendo porque não basta ligá-lo no modelo de html
ICanKindOfCode
2
A solução é descrita aqui: github.com/facebook/create-react-app/issues/301
Enrico Giurin
16
e os arquivos js? jquery bootstrap.js
molikh 27/07
49

Via npm , você executaria o seguinte

npm install bootstrap jquery --save
npm install css-loader style-loader --save-dev

Se o bootstrap 4, também adicione popper.js

npm install popper.js --save

Adicione o seguinte (como um novo objeto) ao seu array de configuração do webpack loaders: [

{
  test: /\.css$/,
  loader: 'style-loader!css-loader'
}

Adicione o seguinte ao seu índice ou layout

import 'bootstrap/dist/css/bootstrap.css';
import 'bootstrap/dist/js/bootstrap.js';
tagarelar
fonte
4
Uma das respostas perfeitas e atualizadas +1
Sushin Pv 30/06/19
33

Você não pode usar componentes Javascript baseados em Bootstrap Jquery no aplicativo React, pois qualquer coisa que tente manipular o DOM fora do React é considerada uma prática ruim. Aqui você pode ler mais informações sobre ele .

Como incluir o Bootstrap no seu aplicativo React:

1) Recomendado . Você pode incluir arquivos CSS brutos do Bootstrap, conforme as outras respostas especificam.

2) Dê uma olhada na biblioteca react-bootstrap . Foi escrito exclusivamente para o React.

3) Para o Bootstrap 4, há reação

Bônus

Hoje em dia, geralmente evito as bibliotecas de Bootstrap que fornecem componentes prontos para uso (react-bootstrap ou reacttstrap acima mencionados e assim por diante). À medida que você se torna dependente dos acessórios que eles adotam (não é possível adicionar um comportamento personalizado a eles), você perde o controle sobre o DOM que esses componentes produzem.

Portanto, use apenas o CSS do Bootstrap ou deixe o Bootstrap de fora. Uma regra geral é: Se você não tem certeza se precisa ou não, não precisa. Eu já vi muitos aplicativos que incluem o Bootstrap, mas usando apenas uma pequena quantidade de CSS e, às vezes, a maior parte desse CSS é substituída por estilos personalizados.

Shota
fonte
1
Com a opção 1), como você inclui o Bootstrap Javascript (e o jquery)? Ou você não?
11788 LordAlpaca
1
Infelizmente, nem o react-bootstrap nem o reacttstrap suportam o Bootstrap 4 ainda.
Zim
1
"deixar o bootstrap de fora" é uma opção bastante viável. Ótimo conselho.
@Zim Agora eles fazem!
Marianna S.
17

Você pode apenas importo arquivo css onde quiser. O Webpack cuidará do pacote css se você configurou o carregador conforme necessário.

Algo como,

import 'bootstrap/dist/css/bootstrap.css';

E a configuração do webpack como,

loaders: [{ test: /\.css$/, loader: 'style-loader!css-loader' }]

Nota: Você também precisa adicionar carregadores de fontes, caso contrário, você receberá um erro.

Thaadikkaaran
fonte
1
Obrigado pela resposta. Precisa de módulos npm para style-loader e css-loader?
Mehul Mali 16/10
1
Sim, use use style-loader css-loaderloaders
Thaadikkaaran 17/10
Ok, agora, para olhar o que é webpack (algo como incluir algo e usá-lo se tornou uma coisa horrível para aprender), ny aspirationw era usar um botão de estilo bootstrap3 no meu aplicativo tutorial .... agora eu não 't
J.Guarin 28/02
1
@ J.Guarin se você estiver usando o Facebook criar-reagir app que irá configurar webpackcom style-loaderpara você.
Peter W
9

Eu também tive um cenário semelhante. Minha configuração foi como indicado abaixo

npm install create-react-app

Isso fornecerá uma configuração de código da placa da caldeira para começar. Brinque com o arquivo App.js para a lógica principal.

Posteriormente, você pode usar o CDN de inicialização no index.html criado pela ferramenta CLI. ou

npm install bootstrap popper jquery

e simplesmente inclua isso no arquivo App.js.

import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap/dist/js/bootstrap.bundle'

Poucos autores mencionaram o uso do atributo className em vez da classe, mas no meu caso, ambos estavam funcionando como abaixo. Mas se você usar a classe e olhar para o console nas ferramentas do desenvolvedor no navegador, verá um erro ao usar a classe.

    <div className="App" class = "container"> //dont use class attribute

E não esqueça de remover as importações CSS padrão para evitar conflitos com a inicialização.

Espero que ajude, Feliz codificação !!!

Deekshith Anand
fonte
7

Siga o link abaixo para usar o bootstrap com o React. https://react-bootstrap.github.io/

Para instalação:

$ npm install --save react react-dom
$ npm install --save react-bootstrap

------------------------------------OU------------- ------------------------

Coloque o CDN do Bootstrap para CSS na tag do arquivo index.html em react e o CDN do Bootstrap para Js na tag do arquivo index.html. Use className em vez da classe, siga abaixo index.html

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="theme-color" content="#000000">

    <link rel="manifest" href="%PUBLIC_URL%/manifest.json">
    <link rel="shortcut icon" href="../src/images/dropbox_logo.svg">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">




  </head>
  <body>

    <div id="root"></div>

     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>

  </body>
</html>
Aditya Parmar
fonte
1
O link que você forneceu está morto
David
Olá David, Coloque o CDN do Bootstrap para CSS na tag <head> do arquivo index.js em react e o CDN do Bootstrap para Js na tag <body> do arquivo index.js. Use className instrad da classe.
Aditya Parmar
5

Resposta completa para fornecer o jquery e o bootstrap, já que o jquery é um requisito para o bootstrap.js:

Instale o jquery e o bootstrap no node_modules:

npm install bootstrap
npm install jquery

Importe seus componentes usando este caminho de arquivo exato:

import 'jquery/src/jquery'; //for bootstrap.min.js
//bootstrap-theme file for bootstrap 3 only
import 'bootstrap/dist/css/bootstrap-theme.min.css';
import 'bootstrap/dist/css/bootstrap.min.css';
import 'bootstrap/dist/js/bootstrap.min.js';
GavinBelson
fonte
Não precisei importar o jquery, apenas o instale com o npm. Eu acho que o bootstrap o carrega sozinho
Madacol 6/11/19
1
No bootstrap 3, você precisa do jquery carregado para algumas das funcionalidades
GavinBelson 27/02
Se você estiver usando o bootstrap 4.4.1, também precisará instalar o popper.jsmódulo npm que é referido por 'bootstrap/dist/js/bootstrap.min.js'.
Binita Bharati 20/04
1
Boa resposta, tive esse problema com o bootstrap 3 e usando em import 'jquery/src/jquery'vez de import 'jquery'corrigi-lo
Cipher
3
npm install --save bootstrap 

e adicione esta instrução de importação ao seu arquivo index.js

import '../node_modules/bootstrap/dist/css/bootstrap.min.css';

ou Você pode simplesmente adicionar a CDN ao seu arquivo index.html.

Nikhil
fonte
e o jquery?
ValRob 22/07
@ValRob para adicionar o jquery ao seu projeto: npm i jquery --save then import $ $ 'jquery'
Nikhil
3

Espero que isso seja útil;)

Etapa 1: usando o NPM, instale este comando abaixo

npm install --save reactstrap@next react react-dom

Etapa 2: exemplo comando principal de importação do script index.js abaixo

import 'bootstrap/dist/css/bootstrap.min.css';

Etapa 3: Componentes da interface do usuário consulte o site reactstrap.github.io

Vidhyapathi Kandhasamy
fonte
1

você pode instalá-lo diretamente via

$ npm install --save react react-dom
$ npm install --save react-bootstrap

importe o que você realmente precisa do bootstrap, como:

import Button from 'react-bootstrap/lib/Button';

// ou

import  Button  from 'react-bootstrap';

e também você pode instalar:

npm install --save reactstrap@next react react-dom

confira isso clique aqui .

e para o CSS, você pode ler este link também com cuidado

leia aqui

Majed HORIA
fonte
1

Depois de instalar o bootstrap no seu projeto "npm install --save [email protected]", você deve mover para o arquivo index.js na pasta SRC do projeto e importar o bootstrap do pacote do módulo node.

import 'bootstrap / dist / css / bootstrap.min.css';

Se você quiser, pode obter ajuda deste vídeo, com certeza ele o ajudará bastante.

Importar inicialização no projeto React

Yousuf Shaikh
fonte
1

Eu tento com instruções:

npm install bootstrap
npm install jquery popper.js

em src / 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();
Morteza Fathnia
fonte
0

Caso você possa usar o yarnrecomendado para os aplicativos React,

você pode fazer,

yarn add bootstrap@4.1.1 // this is to add bootstrap with a specific  version

Isso adicionará o bootstrap como uma dependência ao seu package.jsontambém.

{
  "name": "my-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "bootstrap": "4.1.1", // it will add an entry here
    "react": "^16.5.2",
    "react-dom": "^16.5.2",
    "react-scripts": "1.1.5"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  }
}

Depois disso, basta importar bootstrapno seu index.jsarquivo.

import 'bootstrap/dist/css/bootstrap.css';
prime
fonte
0

Como o Bootstrap / Reactstrap lançou sua versão mais recente, ou seja, o Bootstrap 4, você pode usá-lo seguindo estas etapas

  1. Navegue para o seu projeto
  2. Abra o terminal
  3. Presumo que o npm já esteja instalado e digite o seguinte comando

    npm install --save reactstrap react react-dom

Isso instalará o Reactstrap como uma dependência no seu projeto.

Aqui está o código para um botão criado usando o Reactstrap

import React from 'react';
import { Button } from 'reactstrap';

export default (props) => {
  return (
    <Button color="danger">Danger!</Button>
  );
};

Você pode conferir a Reactstrap visitando sua página oficial

Hadi Mir
fonte
0

Se você usa o CRA (create-react-app) em seu projeto, você pode adicionar isto:

npm install react-bootstrap bootstrap

Se você usa o bootstrap no seu aplicativo e se não estiver funcionando, use-o no index.html:

<link
  rel="stylesheet"
  href="https://maxcdn.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css"
  integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS"
  crossorigin="anonymous"
/>

Eu fiz o acima para resolver um problema semelhante. Espero que isso seja útil para você :-)

Mohamad Ali
fonte
0

Eu só quero acrescentar que a instalação e importação do bootstrap no seu arquivo index.js não será suficiente para o uso de componentes do bootstrap. Toda vez que você quiser usar um componente, importe-o, como: Preciso usar um contêiner e uma linha

    <Container>
        <Row>
        <Col sm={4}> Test </Col>
        <Col sm={8}> Test </Col>
        </Row>
</Container>

Você deve importar no seu arquivo js

import {Container, Row, Col} from 'react-bootstrap';
Kaygi22
fonte
Na documentação, a maneira preferida é importar cada componente individualmente. por exemplo, para Row é import Row de 'react-bootstrap / Row'; Fonte: react-bootstrap.github.io/getting-started/…
Dylan w
0

Aqui está como incluir a última inicialização
https://react-bootstrap.github.io/getting-started/introduction

1.Instalar

npm install react-bootstrap bootstrap

  1. depois importe para App.js import 'bootstrap / dist / css / bootstrap.min.css';

  2. Em seguida, você precisa importar os componentes que você usa no seu aplicativo, por exemplo, se você usa a barra de navegação, navegação, botão, formulário, formulário e controle, importe todos os itens abaixo:

import Navbar from 'react-bootstrap/Navbar'
import Nav from 'react-bootstrap/Nav'
import Form from 'react-bootstrap/Form'
import FormControl from 'react-bootstrap/FormControl'
import Button from 'react-bootstrap/Button'


// or less ideally
import { Button } from 'react-bootstrap';
M Hasan Sunny
fonte
A questão não é sobre react-bootstrap. É sobre o framework bootstrap css. Isso significa não isso ( react-bootstrap.github.io ), mas este ( getbootstrap.com )
Md. Rana