Telling an empirical explanation why i’m preferring ReactJS over AngularJS
ReactJS and AngularJS are tools for developing awesome web applications. It changes the world of web application because of its feature which is the Single Page Application or also known as SPA.
Based on wikipedia, it is a web site that interacts with the user by dynamically rewriting the current page rather than loading entire new pages from a server.
For me as a developer. The biggest difference of the two is AngularJS is a framework, And ReactJS is a library.
For me the empirical definition of framework is
remove impediments of technicality of configuration and just focus on the most important part of the application which is the business logic and the representation of user interface
This is the example of AngularJS for building a basic component on a page.
AngularJS has too much Boilerplate. That is makes me not agile enough to complete a shippable product.
And this is ReactJS. Just simple as that. You have your web components as easy as declaring a simple function. Basically it’s really a function registered as a JSX Component.
Rendering speed doesn’t quantify agile development. It’s a nice to have but it’s not representing the whole picture of developing a good application.
The second reason is data management architecture.
Unidirectional data flow
React’s data architecture is about how to handle property distribution from the state to the view is very clever. It points a single direction which is from the state directly to the view.
React is implementing this feature to solve their actual problem on facebook. Facebook is very big application, they are trying to decouple the component as much as possible to minimise side effects.
What is side effect?
It is a chain of events that causes a failure to the entire application by just a piece of error.
Since react uses unidirectional data flow. If one component fails, it doesn’t chain the event of error by other components.
Unlike AngularJS that uses 2 way binding which syncs both View and the model by property binding and event binding.
If your view fails to deliver the exact value of the property, then so does your model. Instead you are stuck with a huge accidental complexity that you need to fix.
I won’t discuss any further about their other features like state management and other cool stuff.
I’m just expressing that as a developer. Your main goal is to remove complexity and provide pragmatic decision. And This is my decision why i’m picking ReactJS over any framework.