The Facebook connection
React initially gained attention because of who launched it – Facebook. As one of the global tech giants, anything that Facebook is happy to use and put its name behind is likely to draw some attention – after all, if it’s good enough for Facebook, it will be good enough for most developers.
It’s not just that Facebook has the power and resources to develop great tools, either: highly visible platforms like Facebook need to stay at the cutting edge of development, and its ubiquity creates great familiarity with users – so it makes sense for other developers to follow the look and feel they’ve made so popular.
More than a good brand name, React provides a powerful and convenient tool-set for developers and is designed to solve specific issues. One of the main reasons for that is its component-based structure.
In simple terms, it allows different elements to be developed and improved separately from each other, and then added as necessary, without extra development going into each iteration of their use. This not only saves time, but also gives a consistent look and feel across applications, projects, and clients.
It also gives you a library of your own tools to tweak and re-use in the future, cutting down on future development time significantly.
For example, refer this code pen.
See the Pen
Thinking In React: Step 2 by Dan Abramov (@gaearon)
What’s under the hood?
Under the hood, one of the things that makes React so popular is its Virtual DOM (Document Object Model). A Document Object Model is the way that an application treats nodes or elements of an application as a tree structure.
Traditionally this has been a performance bottleneck, dependent on the speed of communication between browser and server. A Virtual DOM is an attempt to solve this by creating a DOM which can run locally and be updated when conditions are convenient – bypassing a significant amount of the usual bandwidth cost of these processes. The result is a much better performance in terms of speed and bandwidth.
React also has a much closer relationship with HTML than many previous JS libraries. This is beneficial in multiple ways.
Firstly, in terms of development, it brings HTML elements directly into the development process – less need for bouncing back and forth between systems.
Secondly, because React builds a readable site, the implications for search and SEO are quite profound; traditional JS applications require an extra layer for SEO optimisation and accessibility, but React produces applications where SEO can be directly integrated and optimised from the ground up.
Framework for the future
Finally, React has proven to be a relatively easy learning curve for many developers. Because it is based around JS and HTML, knowledge of those two languages are all one really needs to get started. Added to that the continuing support and resources for React of Facebook, who have a vested interest in its continuing success, and React looks to be a framework not just for now, but for the foreseeable future as well.
ReactJS Conf 2018