Introdução ao React

Módulo 1: Fundamentos do React

Aula 1
1

O que é React?

15:30

Introdução ao React, sua história e principais benefícios

2

História e Evolução do React

Como o React evoluiu desde 2011 até hoje

História e Evolução do React

Timeline do React

2011 - O Início

  • Jordan Walke, engenheiro do Facebook, cria o primeiro protótipo
  • Problema: Interface do Facebook estava ficando complexa demais
  • Necessidade de uma solução para gerenciar estado de UI complexa

2012 - Desenvolvimento Interno

  • React sendo usado internamente no Facebook
  • Instagram é adquirido pelo Facebook e começa a usar React
  • Primeiros testes em produção com milhões de usuários

2013 - Open Source

  • Maio: React é open-sourced na JSConf US 2013
  • Comunidade inicialmente cética sobre JSX
  • Primeira versão pública: v0.3.0

2014 - Crescimento

  • Introdução do React Developer Tools
  • Primeira React Conference (ReactConf 2014)
  • Netflix adota React para sua interface

2015 - React Native

  • Março: Lançamento do React Native
  • "Learn once, write anywhere"
  • Mesmos princípios do React para mobile

2016 - Fiber (v15)

  • React v15 introduz melhorias significativas
  • Início do desenvolvimento do React Fiber
  • Melhor suporte para componentes funcionais

2017 - Fiber Architecture (v16)

  • Setembro: React v16 com nova arquitetura Fiber
  • Melhor performance e capacidade de priorização
  • Introdução de Error Boundaries
  • Suporte para fragmentos

2018 - Hooks Revolution (v16.8)

  • Fevereiro: Introdução dos React Hooks
  • Revolução na forma de escrever componentes
  • useState, useEffect e outros hooks built-in
  • Componentes funcionais ganham superpoderes

2020 - Concurrent Features

  • React v17 - Primeira versão "sem novas features"
  • Foco na estabilidade e migração gradual
  • Preparação para Concurrent React

2022 - React 18

  • Março: React v18 com Concurrent Features
  • Automatic Batching
  • Suspense para Server-Side Rendering
  • startTransition para atualizações não urgentes

2023-2024 - React Server Components

  • React Server Components em produção
  • Next.js 13+ App Router
  • Melhor integração servidor-cliente

Marcos Importantes

JSX - A Revolução Sintática

// Antes (JavaScript puro)
React.createElement('div', null, 
  React.createElement('h1', null, 'Hello World')
);

// Depois (JSX)
<div>
  <h1>Hello World</h1>
</div>

Hooks - Mudança de Paradigma

// Antes (Class Components)
class Counter extends Component {
  constructor(props) {
    super(props);
    this.state = { count: 0 };
  }
  
  render() {
    return <div>{this.state.count}</div>;
  }
}

// Depois (Hooks)
function Counter() {
  const [count, setCount] = useState(0);
  return <div>{count}</div>;
}

Impacto na Indústria

Mudança de Paradigma

  • Popularizou componentes como unidade fundamental
  • Influenciou Vue.js, Angular e outras bibliotecas
  • Trouxe programação funcional para o mainstream

Ecossistema Robusto

  • Redux - Gerenciamento de estado
  • React Router - Roteamento
  • Next.js - Framework full-stack
  • Gatsby - Gerador de sites estáticos
  • React Native - Desenvolvimento mobile

Adoção Empresarial

  • Mais de 10 milhões de sites usam React
  • 74% dos desenvolvedores front-end conhecem React
  • Tecnologia mais amada segundo Stack Overflow Survey

Filosofia do React

Princípios Fundamentais

  1. Composição sobre Herança

    • Componentes pequenos e reutilizáveis
    • Composição para criar UIs complexas
  2. Unidirecional Data Flow

    • Dados fluem de pai para filho
    • Estado centralizado e previsível
  3. Declarativo vs Imperativo

    • Descreva o estado final desejado
    • React cuida das atualizações
  4. Learn Once, Write Anywhere

    • Mesmos conceitos para web, mobile e desktop
    • Transferência de conhecimento

O Futuro do React

Trends Atuais

  • React Server Components: Renderização no servidor
  • Concurrent Features: Melhor UX com atualizações inteligentes
  • Suspense: Carregamento de dados mais elegante
  • React Forget: Otimizações automáticas de performance

Próximos Passos

Na próxima aula, vamos colocar a mão na massa e configurar nosso ambiente de desenvolvimento para começar a programar em React!

3

Pesquisa: Empresas que Usam React

Atividade de pesquisa sobre empresas que utilizam React em produção

Activity

Atividade: Empresas que Usam React

Objetivo

Pesquisar e documentar empresas que utilizam React em suas aplicações, entendendo como a tecnologia é aplicada em diferentes contextos de negócio.

Instruções

Parte 1: Pesquisa (30 minutos)

Pesquise 5 empresas diferentes que utilizam React e documente as seguintes informações para cada uma:

  1. Nome da empresa
  2. Setor de atuação (e-commerce, streaming, redes sociais, etc.)
  3. Como utilizam React (site principal, painel administrativo, app web, etc.)
  4. Por que escolheram React (se houver informação disponível)
  5. URL do site/aplicação

Parte 2: Análise (15 minutos)

Para cada empresa pesquisada, visite o site/aplicação e observe:

  • Performance: O site carrega rapidamente?
  • Interatividade: Quais elementos são interativos?
  • Design: Como é a experiência do usuário?
  • Funcionalidades: Que recursos chamam atenção?

Parte 3: Reflexão (15 minutos)

Responda às seguintes perguntas:

  1. Que tipos de aplicações se beneficiam mais do React?
  2. Há algum padrão comum entre as empresas que usam React?
  3. Que funcionalidades você acha que seriam difíceis de implementar sem React?
  4. Qual aplicação mais te impressionou e por quê?

Empresas Sugeridas (caso precise de inspiração)

  • Streaming: Netflix, Disney+, Amazon Prime Video
  • Redes Sociais: Facebook, Instagram, WhatsApp Web
  • E-commerce: Airbnb, Shopify, Mercado Livre
  • Produtividade: Trello, Asana, Notion
  • Financeiro: PayPal, Stripe, Nubank
  • Educação: Khan Academy, Coursera, Udemy
  • Tecnologia: GitHub, GitLab, Vercel

Formato de Entrega

Crie um documento (pode ser em markdown, Word, ou Google Docs) com o seguinte formato:

# Pesquisa: Empresas que Usam React

## Empresa 1: [Nome]
- **Setor**: [setor]
- **Uso do React**: [descrição]
- **Motivo**: [se disponível]
- **URL**: [link]
- **Observações**: [sua análise]

## Empresa 2: [Nome]
...

## Reflexões
1. **Tipos de aplicações que se beneficiam do React**:
   [sua resposta]

2. **Padrões comuns**:
   [sua resposta]

3. **Funcionalidades que dependem do React**:
   [sua resposta]

4. **Aplicação mais impressionante**:
   [sua resposta]

Recursos Úteis

Tempo Estimado

⏱️ 1 hora total

Próxima Aula

Na próxima aula, vamos configurar nosso ambiente de desenvolvimento e criar nossa primeira aplicação React!

3 content items