Here are a few facts about React.js to help you decide whether you should use it or not.
The history of React
React.js was invented by a Facebook engineer, first as an XHP port, starting from the PHP version released by Facebook six years ago. XHP was principally concerned with minimizing Cross Site Scripting (XSS) attacks, but when it came to dynamic web applications, which require many round trips to the server, XHP alone was not sufficient.
Later on, React.js was developed through a collaboration between Facebook and Instagram. Now, React.js has almost 48,000 stars on Github page and also has a version called React Native, designed for iOS development.
The Pros of using React.js
If your application has a lot of dynamic content and large data operations, React.js is the right solution for you. Here are a few reasons:
- A common downfall among other front-end frameworks is their performance when rendering, updating, and manipulating large blocks of content. React may be the most performant way to manage your DOM, especially with large sets of data. It optimizes DOM manipulation leading to a fast library, which enables web applications that require very little code.
- React.js comes with free performance optimization tools. Calling “perf.printWasted()” inside your application, you can analyze which parts are incorrectly subjecting the application to re-rendering.
- You can always use React as an alternative, or along with other JS libraries like Angular, Backbone or jQuery.
- It works nicely with commonJS / AMD patterns
- React may be easier to learn than other frameworks since it contains very simplified and easy to learn API and syntax.
- Unlike other frameworks, which are mainly for application development, React is more like an open source library for building user interfaces, so, if you don’t need the full MVC architecture, React may be a better fit for your needs.
The Cons of using React.js
Most developers state that Reacts’ most common downside is that it’s not a traditional MVC framework, it is merely a view layer. Also, you might want to consider the following facts:
- When building something with React.js, you will need to include other libraries to handle different parts of the application, as an UI library.
- Because it introduces a very different approach to UI design, the time spent on learning React.js nd gaining the experience needed to use it efficiently may be significant. The documentation you can find online is still sparse. If you don’t have that time, and you just need a quick solution, you’d better leave React.jsfor later.
ReactJS is relatively new, compared to other frameworks, so it might be hard to find open-source libraries or components.
- In React, data flows one way: from owner to child. This one-way data flow can be hard to deal with for developers who are used to Angular’s two-way binding mechanism.
ReactJS is gaining popularity, as it is pushed forward by Facebook. Also, it is used by Yahoo!’s new email interface. On the other hand, as for the developers’ community, ReactJS seems to be very good in some cases and not so good in others.