React in the SJGAR stack

v0.2 - last updated November 2020

Prerequisite reading

If you want to read why React is part of the SJGAR stack read the Introducing the SJGAR stack post.

Introduction

React is the most used frontend framework to power web applications. Uniquely it also allows the creation of native mobile applications with React Native and Expo. It has inspired frameworks to embrace the unidirectional data flow and component driven development. Unlike its alternatives it embraces JavaScript at its core and has a very small footprint.

The big three for web: Angular, React and Vue

Looking at the daily downloads for the big three shows the following picture.
All three frameworks were roughly introduced at the same time.
  • React was created May 24, 2013
  • Vue was created Jul 29, 2013
  • Angular was created Sep 18, 2014
(Note we are not looking at the original AngularJS here since the introduction of Angular was a significant break with the previous version.)
The graph shows a clear gap and trend towards Reacts continued popularity. The daily downloads can be seen as a proxy to determine the community size. A larger community comes with more tools, more libraries, blog posts and a larger talent pool.

React Native for building Mobile Apps

Of the big three React is the only framework that is really used to build cross platform Native UI Mobile apps for iOS and Android using React Native.
Vue offers Vue Native which is a wrapper around React Native. NativeScript can be used to build native apps with Angular.
Some apps that use React native:
  • Facebook
  • Instagram
  • Pinterest
  • Uber Eats
  • Walmart

Simplicity with Expo

Paragraph to be written

Comparison with Flutter

Paragraph to be written

Learn once, apply everywhere

Paragraph to be written

Flexbox layout system for web and mobile

Paragraph to be written

Idiomatic React equals JavaScript and Functional Programming

Paragraph to be written

Component driven development

Paragraph to be written

Unidirectional data flow

Paragraph to be written