According to reactjs.org :

React is a declarative, efficient, and flexible JavaScript library for building user interfaces. It lets you compose complex UIs from small and isolated pieces of code called “components”. 

React was among the most adopted JS frameworks in 2017, along with Angular 1 & 2 and Vue (and those who use “no framework”) according to stateofjs.com, and medium.com.

Each framework has very strong community support, and usage reports can be a bit subjective depending on which camp it comes from. 

Helpful References

When it’s been a while since I’ve worked in React, Pluralsight has some helpful go to references.

React and Angular have much in common, but getting components from one version to work well with another can be time consuming. And although two React apps are using Redux (or Flux), if the packages selected by each developer (or team) differ drastically, it may just be better to build from scratch.

While Angular is a framework that attempts to cover a wide spectrum of client-side requirements, the React library focuses more narrowly on client side rendering and event handling. This allows greater freedom for developers to choose which other tools to use, a big advantage when incorporating React into existing applications.

Although flexibility is usually desirable, using a variety of tools across different apps can make it difficult to merge applications or leverage modules among applications. If this is important in your enterprise, it should be considered when deciding on a library or framework. Will more flexibility, or more consistency be of greater value?

Once the decision is made, you’ll want to support the decision and focus on the chosen library or framework, rather than fight to work with something else. While it’s good to have a broad understanding of tools, when your goal is to be an expert, it helps to focus. This may be why community members from each camp seem so zealous about their choice.

Getting Started

The Reactjs.org Getting Started page provides an excellent introduction for getting familiar with React, including this sample Hello World HTML example.

By importing these three files:

  • https://unpkg.com/react@16/umd/react.development.js
  • https://unpkg.com/react-dom@16/umd/react-dom.development.js
  • https://unpkg.com/[email protected]/babel.min.js

The sample page is able to process this small React instruction:

< div id=”root” > < /div >
< script type=”text/babel” >
ReactDOM.render(
< h1 > Hello, world!< /h1 > ,
document.getElementById(‘root’)
);
< /script >

However, it clearly states this sample is for development purposes only with this comment:

< !–
Note: this page is a great way to try React but it’s not suitable for production.
It slowly compiles JSX with Babel in the browser and uses a large development build of React.
Read this section for a production-ready setup with JSX:
https://reactjs.org/docs/add-react-to-a-website.html#add-jsx-to-a-project
In a larger project, you can use an integrated toolchain that includes JSX instead:
https://reactjs.org/docs/create-a-new-react-app.html
You can also use React without JSX, in which case you can remove Babel:
https://reactjs.org/docs/react-without-jsx.html
— >

The page offers recommendations for the proper way to use React, which will be explored in future discussions.