React
Introdução ao React
O que é React?
O React é uma biblioteca desenvolvida e disponibilizada pelo Facebook, sendo uma lib de código aberto e sendo mantida por diversos desenvolvedores a nível internacional.
Diferente do JQuery ou até mesmo do JavaScript puro, o React possui a habilidade de dividir as funcionalidades de um software em componentes.
Esses componentes são:
- Lógica (JavaScript);
- Visualização (HTML/JSX);
- Estilização (CSS).
- JSX ("JavaScript XML") trata-se de utilizar elementos HTML no JavaScript.
Exemplo de funcionalidade do JSX:

- Estrutura básica com ES6:

- Exemplo:

caution
Para utilizar o componente em qualquer outra classe do projeto, basta utilizar o método render():

Instalação e setup
- Alternativa Um: Para utilizar o React é necessário: 
- CDN: Biblioteca React 
- Babel: Compilador 
- Live-server: Simulador de servidor 
- Alternativa Dois: Utilize o comando Create React App: 
npx create-react-app nome-da-pasta
cd nome-da-pasta
npm start
Documentação
Acesse a documentação do React para entender melhor o "Getting Started"
Propriedades
É possível repassar propriedades nas notações dos componentes e acessá-las de modo rápido. Utilizando o último exemplo, analise o exemplo a seguir:

Agora analise como esse componente pode ser acessado através da variável this.props:

Estado
O estado não é repassado ao componente, mas sim configurado em seu interior. Isso significa que é preciso de uma variável para armazenar uma lista de posts (como nos exemplos acima).
Utilize a variável state para definir o estado:

Atualizando o render:

- FLUXO DE RENDERIZAÇÃO
A utilização da variável state ajuda a determinar a necessidade de cada componente ser renderizado novamente, caso receba alguma alteração.
- ALTERANDO O ESTADO
Embora seja possível acessar a variável state utilizando diretamente o this.state, não é possível utilizá-lo para alterar o estado. De maneira geral, o estado é imutável.
Todavia, é possível utilizar a função setState para repassarmos as variáveis que iremos atualizar no estado, ignorando outras informações que não serão modificadas:

Componentes e Métodos React
É necessário pontuar que todo componente React tem um ciclo de vida, sendo necessário conhecer alguns métodos que podem interceptar sua renderização tradicional ou captar informações do ciclo.
A seguir veja alguns exemplos de MÉTODOS
constructor
O método constructor é a primeira função executada no componente, sendo necessário repassar as props no componente pai Component.
Veja o exemplo a seguir:

componentWillMount
O método componentWillMount é executado antes do método render e apenas uma vez po componente e possibilita a execução de alterações no estado. 
Veja o exemplo a seguir:

componentDidMount
O método componentDidMount é executado após o método render e indica que a renderização inicial do componente foi finalizada. É aqui o momento indicado para qualquer processo assíncrono ou de efeito colateral (por exemplo: APIs). 
Veja o exemplo a seguir:

componentWillReceiveProps
O método componentWillReceiveProps é executado logo após a atualização de algum componente. 
Veja o exemplo a seguir:

shouldComponentUpdate
O método shouldComponentUpdate determina se o componente irá realizar o render novamente. Isso significa que esse método avalia se toda mudança feita deve ou não executar um novo render. 
Veja o exemplo a seguir:

Após a execução do shouldComponentUpdate, se a atualização gerou um novo render, será primeiramente realizado um componentWillUpdate e, após o render, o componentDidUpdate. 
componentWillUnmount
O método componentWillUnmount é chamado antes de um componente ser desmontado, sendo eficiente em casos que demandam o cancelamento do EventListenersou setIntervals. 
Outros conhecimentos de React
Stateless Components
Embora a maioria dos componentes que vimos até aqui possuam um ciclo de vida, muitos componentes React não possuem ciclo de vida. Ou seja, eles retornam apenas JSX.
Veja o exemplo a seguir:

Links úteis
- Frontend Mentor: plataforma digital para treinar conhecimentos de JavaScript (incluindo React), CSS e HTML. 
- Pensando em React: documentação oficial do React sobre como pensar do jeito React. 
Ferramentas úteis para o uso do React
Sugestões de ferramentas para utilizar em conjunto com o React:
- Redux: Biblioteca open-source disponível para React, Angular, Ember e Js. 
- React DevTools: Extensão do Google que facilita o processo de inspecionar elementos React. 
- React-Bootstrap: utilizando Bootstrap e React.