image

Acesse bootcamps ilimitados e +750 cursos pra sempre

70
%OFF
Isadora Ariane
Isadora Ariane11/06/2026 18:29
Compartilhe

Front-end Old School

    "Você ainda cria componentes usando o básico?"

    Em uma época dominada por:

    • ⚛️ React
    • 🟢 Vue
    • 🔺 Angular
    • 🟦 Svelte
    • 🟣 Next.js

    O choque é compreensível uma vez que a web moderna parece inseparável de frameworks e componentes.

    Mas existe uma geração — talvez a do velho testamento parte I e II — que aprenderam a construir interfaces de outra forma onde um componente não era um arquivo .jsx.

    #01. Como Fazíamos Componentes Antes

    Antes dos frameworks modernos, a construção de interfaces normalmente seguia uma lógica simples:

    • HTML para estrutura;
    • CSS para aparência;
    • JavaScript para comportamento.

    Um componente podia ser criado diretamente pelo DOM:

    const button = document.createElement("button");
    
    button.textContent = "Clique aqui";
    
    document.body.appendChild(button);
    

    Ou utilizando templates HTML:

    <div class="card">
      <h2>Título</h2>
      <p>Descrição</p>
    </div>
    

    Simples. Direto. Sem build. Sem transpiler. Sem dependências. Sem um node_modules.

    #02. O Que o React Mudou?

    React trouxe uma ideia extremamente poderosa:

    Interface é função do estado.

    Ao invés de manipular elementos diretamente:

    titulo.textContent = novoTitulo;
    

    Você descreve o resultado desejado:

    return (
      <h1>{titulo}</h1>
    );
    

    E o React decide:

    • O que criar;
    • O que atualizar;
    • O que remover.

    O desenvolvedor deixa de manipular o DOM diretamente passando a descrever a interface.

    #03. A Grande Vantagem do React

    Quando uma aplicação cresce, manter o controle manual do DOM pode se tornar complicado, bagunçado e às vezes bem caótico.

    Vamos tomar como exemplo um dashboard corporativo onde centenas de componentes estão interagindo ao mesmo tempo. Nesse cenário, o React torna-se vantajoso pelas suas características:

    • ✅ Componentização
    • ✅ Reutilização
    • ✅ Gerenciamento de estado
    • ✅ Fluxo previsível
    • ✅ Ecossistema robusto

    #04. Minha humilde observação

    Meu lado old school sempre faz a mesma pergunta:

    "Precisamos mesmo de tudo isso?"

    Muitas vezes encontro aplicações relativamente simples utilizando frameworks complexas com inúmeras bibliotecas auxiliares para exibir alguns formulários, tabelas e gráficos. É quase inevitável se questionar: "pra quê descascar uma laranja com uma moto serra elétrica?".

    #05. Componentização Não Foi Inventada Pelo React

    Existe uma impressão comum de que conceitos como:

    • Componentes;
    • Reutilização;
    • Renderização dinâmica;
    • Templates;

    nasceram com React, mas na verdade, elas foram popularizadas por ele.

    #06. É possível renderizar componentes em JS puro?

    Sim, e pra isso você utiliza schemas (metadados).

    Schema
    ↓
    Função de Renderização
    ↓
    HTML
    

    Por exemplo:

    {
      type: "select",
      label: "Sexo",
      options: [
          "Masculino",
          "Feminino"
      ]
    }
    

    Isso se transforma em...

    <label>Sexo</label>
    
    <select>
      <option>Masculino</option>
      <option>Feminino</option>
    </select>
    

    #07. Quando Percebi Que Eu Também Estava Fazendo Componentização

    Esse é um meio de implementar exatamente os mesmos conceitos que muitos associam aos frameworks modernos com a diferença de estar fazendo tudo diretamente sobre a plataforma web. Legal né?

    #08. Uma Estrutura Possível

    Isso pode ser organizado de forma extremamente simples, vá da sua preferência, mas vamos trabalhar com um exemplo:

    src/js/
    │
    ├── components/
    │   ├── select.js
    │   ├── input.js
    │   ├── checkbox.js
    │   └── textarea.js
    │
    ├── schemas/
    │   └── profileSchema.js
    │
    ├── renderer/
    │   └── renderForm.js
    │
    └── main.js
    

    Cada componente é apenas uma função JavaScript.

    Por exemplo:

    export function createSelect(config) {
    
      const wrapper = document.createElement("div");
    
      const label = document.createElement("label");
      label.textContent = config.label;
    
      const select = document.createElement("select");
    
      config.options.forEach(option => {
    
          const opt = document.createElement("option");
    
          opt.value = option;
          opt.textContent = option;
    
          select.appendChild(opt);
    
      });
    
      wrapper.appendChild(label);
      wrapper.appendChild(select);
    
      return wrapper;
    }
    

    #09. O Renderer

    O renderer recebe o schema:

    const schema = [
    
      {
          type: "select",
          label: "Sexo",
          options: [
              "Masculino",
              "Feminino"
          ]
      }
    
    ];
    

    E decide qual componente construir:

    schema.forEach(field => {
    
      if(field.type === "select") {
    
          container.appendChild(
              createSelect(field)
          );
    
      }
    
    });
    

    Na prática:

    Schema
    ↓
    Renderer
    ↓
    Componentes
    ↓
    DOM
    

    #10. React Faz Algo Parecido

    React também trabalha com uma ideia semelhante:

    Dados
    ↓
    Componentes
    ↓
    Renderização
    ↓
    DOM
    

    A diferença é que existe uma camada intermediária:

    Dados
    ↓
    Estado
    ↓
    React
    ↓
    Virtual DOM
    ↓
    DOM
    

    #11. O Paradoxo da Abstração

    Quando abstrações se acumulam demais, elas próprias se tornam uma nova complexidade, por isso que alguns desenvolvedores experientes sentem nostalgia da web tradicional - por entender exatamente o que o React está abstraindo.

    #12. Então React é Melhor ou Pior?

    A resposta pra essa pergunta é outra pergunta:

    Depende. Qual é a complexidade real do problema que você está tentando resolver?
    Compartilhe
    Recomendados para você
    Bootcamp Corpay - Back-end do Zero a Prática
    GFT - Fundamentos de Cloud com AWS
    Bootcamp Bradesco - GenAI, Dados & Cyber
    Comentários (1)
    Maicon Queiroz
    Maicon Queiroz - 11/06/2026 19:52

    Muito interessante, obrigado pela informação.