Advantages of using react-bootstrap over bootstrap

React-bootstrap creates React components for you.

The advantage will be obvious if you consider how to do animations with the help of bootstrap in your React project.

Without react-bootstrap, you need something like CSSTransitionGroup. You cannot take advantage of bootstrap's API because it will manipulate the DOM, which makes the React behavior unpredictable. Also, bootstrap will hide details of their animation API; that is to say,you cannot use it at all.

With bootstrap components, however, you do not need to worry about how the animation is implemented by bootstrap, you just need to specify properties and hooks in a component and the library will do the trick. More specifically, it can add some wrappers which are not visible to the client.

enter image description here

As you can see above, <Fade> and <Transition> component is added by bootstrap.

In addition, the syntax of virtual DOM may not be compatible with DOM:

enter image description here

As shown above, putting <input> inside a <select> is a way of semantic UI, but React will complain. I expect the bootstrap may experience similar issues without a customized library.


It's really a matter of what front-end framework you plan to use. If you are going to use Angular, Ember, Knockout, or plain old jQuery then traditional Bootstrap may be sufficient for you. With React though there is a fundamental difference in how the JavaScript application code interacts with the DOM that makes the jQuery approach from Bootstrap very difficult to work with since React primarily works with a Virtual DOM. It iss true that using React-Bootstrap will reduce the amount of boilerplate code that you would need to do simple tasks like Buttons or Form elements, though that's not the primary gain.


If I understood correctly, react-bootstrap is just an extension of components to make easy the life whose does not know about html + css.

If you don't have the knowledge about doing buttons, menus, layouts and etc by yourself with html+css+js I advice you to use bootstrap.

React doesn't give you the design of buttons and menus for example.

Here is the link from facebook of why use react:

https://facebook.github.io/react/docs/why-react.html

I chose React in spite of angular because it is easier to learn react if you already know javascript.

If you need to use bootstrap I advice you to use only twitter-bootstrap because you can customize your layout just adding another css file after bootstrap.css