26 October 2018
React is used to create large, fast and scalable web applications. It uses Virtual DOM and a diffing algorithm for rendering, and allows developers to create applications where data that changes over time can be viewed without reloading the page.
The diffing engine makes DOM manipulation extremely fast – faster even than vanilla DOM scripting.
Another feature of React is its unidirectional data flow, where properties are passed from the parent component to child components as a single set of immutable values. This is different from, say, Angular with its more familiar bidirectional data flow. But it does make React applications more predictable and easier to debug if something goes wrong.
React doesn’t provide a complete application framework as it’s designed just to build UIs. So that means developers can use their own choice of libraries to do other tasks in the application.
Where is React used?
The Facebook website uses React, as do many other high-performing web applications including Instagram, Netflix, WhatsApp, The New York Times, AirBnB and Dropbox.
React Native, on the other hand, is used to develop apps on Android and iOS mobile devices. It was open-sourced in 2015, and its basic working principles are the same as for React, although there are differences. It doesn’t manipulate DOM using Virtual DOM for one thing.
React Native’s main strength is that it doesn’t rely on WebViews, unlike other mobile application development frameworks such as Cordova. So instead of rendering to the browser’s DOM, it uses Java APIs to render to Android components, or Obj-C APIs to render to iOS components.
The bridge allows communication between the realms – even though they’re written in different technologies.
React Native lets developers build native UIs, and is becoming increasingly popular. Apps that use it include Facebook Ads Manager, Instagram, Walmart, Bloomberg, AirBnB and UberEats.
Here at JBI Training, we offer a range of training courses for Front End Web and Mobile App Developers including:
All our courses are practical and interactive – and give you hands-on experience of building actual applications.