- Extremely easy to write UI tests cases. This is due to the virtual DOM system implemented entirely in JS
- Components can be reuse easily throughout your app. They can also be combined, and wireup together to create even more complex UIs
- One can use reactJS as an alternative, or along with popular JS libraries such as angular, backbone and jQuery
- React will automatically manage all UI updates when your underlying data changes.
- Ease of debugging-There’s a reactJS chrome extension that allows you to inspect the DOM to figure out which component is rendering a particular piece of UI.
- Works nicely with commonJS / AMD patterns
- There’s a learning curve for beginners whom are new to web development.
- Integrating ReactJS into a traditional MVC framework such as rails would require some configuration
- It’s kind of verbose. Writing components isn’t as straight forward as pure HTML & JS
- It’s not a full framework. There’s no router nor model management libraries built into ReactJS — unlike angular or ember.