React is javascript library, which is designed for building user interface. It is managed by Facebook and a community of individual developers and companies.

React can be used as a base for development of single-page or mobile apps. Complex apps written in React usually require the usage of other libraries for the management of states, routing or interaction with some API.


React was developed by Jordan Walker, who is a software engineer for Facebook. He was influenced by XHP, which is HTML component Framework for PHP. It was firstly deployed on Facebook newsfeed in 2001 and then later used on 2012 for It became in May 2003 on JSConf US conference an open source.

In April 2017 Facebook announced the creation of React Fiber, which is new core algorithm of the React library for building user interface. React Fiber was supposed to be the base of every future improvements and development of functionalities within React Framework.

Advantages of using React

  • Easy to learn. React is easily learned and easy to use and there is also available rich documentation, tutorials and training sources. Anyone who has experience with JavaScript can understand React and start using it in a few days.
  • Reusable components. React is based on components. It can start with small segments, which you then use for building bigger ones and then you put the bigger ones together into whole apps. Every component has own logic and control and can be used whenever it is needed. Reusing the code simplifies development and the code maintenance. It also helps with implementation of consistent code through the whole project.
  • Virtual DOM. Usually during the app development, which works with a large number of user’s data and their actualization, is needed to carefully consider the app structure with regard to efficiency. Even with fast client platforms and JavaScript engines can extensive DOM manipulation lead to tight throat, which leads to bad user experience. React solves this with the help of virtual DOM. All display changes are firstly executed on virtual DOM, which is in memory and not on a screen. Effective algorithm then evaluates, what is needed to be changed on the real DOM and chooses the most effective way how to applicate these changes.
  • Great developer’s tools. Tools that are available for Chrome or Firefox are in extension form for React. That allows analysis of the components’ hierarchy on virtual DOM. You can choose individual components and research and edit their features and statuses.

Disadvantages of using React

  • Huge speed of development. The environment constantly changes, and the developers therefore always must learn new ways how to access problems. Everything is being developed and speed of these changes is exceptional.
  • Documentation. There are great amounts of documentation available, but it cannot keep up with the fast changes. Developers often write their own documentation for specific tools, which they use in their current project.
  • SEO. According to many opinions, Google and other searching tools don’t index or not sufficiently index dynamic websites. These worries were never proven and Google claims that its tools are able to read the dynamic content.
  • Risk of big projects. There is a risk of losing control over the data’s run and components at all large projects. In React during a bad initial proposal of architecture threatens that there will be needed to open 4-5 files, so it would be possible to applicate changes.
  • Risk of the lack of components’ clarity. Although components as they are, are useful, in long term of usage they can become unreadable and unmanageable.