0% Concluído
0/0 Steps
  1. 1. Introdução ao React
    8 Tópicos
    |
    1 Teste
  2. 2. React Básico
    5 Tópicos
    |
    1 Teste
  3. 3. Construindo Componentes
    10 Tópicos
    |
    1 Teste
  4. 4. Estilizando Componentes
    8 Tópicos
    |
    1 Teste
  5. 5. Gerenciando Estado de Componentes
    8 Tópicos
    |
    1 Teste
  6. 6. Construindo Formulários
    3 Tópicos
    |
    1 Teste
  7. 7. Conectando a APIs/Backend
    11 Tópicos
    |
    1 Teste
  8. 8. Roteamento e Navegação
    4 Tópicos
    |
    1 Teste
Módulo 1, Tópico 4
Em andamento

React vs Javascript Vanilla, por que escolher React

Módulo Progresso
0% Concluído

Nesta aula, vamos mergulhar nas diferenças técnicas entre React e JavaScript Vanilla, e avaliar em quais cenários o React pode ser a escolha mais adequada para seus projetos. Ao compreender estas diferenças, você será capaz de tomar decisões mais informadas sobre qual tecnologia se alinha melhor com as necessidades do seu projeto.

Comparação Técnica

  • Manipulação do DOM:
    • A manipulação do Document Object Model (DOM) é uma operação fundamental no desenvolvimento de aplicações web. No JavaScript Vanilla, a manipulação direta do DOM é comum, mas pode se tornar complexa e menos performática à medida que a aplicação cresce.
    • O React, por outro lado, introduz o conceito de Virtual DOM, uma representação leve do DOM real. Este modelo virtual permite que o React rastreie as alterações no estado da aplicação e atualize apenas as partes necessárias do DOM real, ao invés de re-renderizar todo o DOM a cada mudança. Isso resulta em uma manipulação do DOM mais eficiente e performática, especialmente em aplicações de grande escala.
  • Gestão de Estado:
    • No JavaScript Vanilla, a gestão de estado pode ser feita de várias maneiras, incluindo o uso de variáveis globais ou o armazenamento de estado em elementos DOM. No entanto, essas abordagens podem se tornar desorganizadas e propensas a erros em aplicações complexas.
    • O React oferece uma gestão de estado mais estruturada e previsível. Através de características como o estado local dos componentes e bibliotecas de gestão de estado como Redux, o React facilita o rastreamento e a atualização do estado da aplicação de uma maneira que é fácil de entender e manter.

Reutilização de Código

  • No desenvolvimento de aplicações web, a reutilização de código é crucial para manter a base de código organizada e reduzir a duplicação de código. Vamos comparar a reutilização de código entre React e JavaScript Vanilla através de exemplos de código.
  • JavaScript Vanilla:
function createButton(label) {
    var btn = document.createElement('button');
    btn.innerText = label;
    return btn;
}

var submitButton = createButton('Submit');
document.body.appendChild(submitButton);

  • React:
function Button(props) {
    return <button>{props.label}</button>;
}

function App() {
    return <Button label="Submit" />;
}

ReactDOM.render(<App />, document.getElementById('root'));

  • No exemplo acima, a função createButton em JavaScript Vanilla e o componente Button em React são utilizados para criar um botão. No React, a reutilização é facilitada através da criação de componentes reutilizáveis que podem ser importados e utilizados em diferentes partes da aplicação.

Performance

  • A performance de renderização é uma consideração importante ao desenvolver aplicações web, e é aqui que o React realmente brilha em comparação com o JavaScript Vanilla.
  • Redução de Operações de DOM:
    • As operações de DOM são caras em termos de performance. O React minimiza estas operações através do uso do Virtual DOM, como discutido anteriormente. Ao contrário do JavaScript Vanilla, onde cada manipulação de DOM resulta em uma alteração direta no DOM real, o React avalia as diferenças entre o DOM real e o Virtual DOM, e aplica apenas as alterações necessárias.
  • Renderização Otimizada:
    • Além disso, o React possui mecanismos de otimização de renderização, como a renderização condicional e as chaves nas listas, que ajudam a evitar re-renderizações desnecessárias e melhorar a performance da aplicação.
  • Comparação de Performance:
    • Em geral, o React proporciona uma performance de renderização superior, especialmente em aplicações de grande escala, onde a minimização das operações de DOM e a gestão eficiente do estado são cruciais.

Avaliação de Necessidades do Projeto

  • Ao considerar a incorporação do React em seus projetos, é vital avaliar primeiro as necessidades específicas do projeto. O React é extremamente poderoso e eficaz para construir interfaces de usuário reativas e dinâmicas, mas pode não ser necessário para projetos mais simples ou com requisitos diferentes.
  • O React não é uma bala de prata que resolve todos os problemas. Sua utilidade principal é para construir interfaces de usuário ricas e interativas de maneira eficiente. Portanto, se o seu projeto não requer uma interface de usuário complexa ou dinâmica, o JavaScript Vanilla ou outra biblioteca/framework mais leve pode ser mais adequado.
  • A análise cuidadosa das necessidades do projeto, avaliando a complexidade da UI, a necessidade de reutilização de componentes, a escala do projeto, e outros fatores, é crucial para tomar uma decisão informada sobre se o React é a escolha certa.

Na próxima aula, vamos aprofundar ainda mais as razões para escolher React, exploraremos como o React se compara com outras bibliotecas e frameworks populares. A escolha da tecnologia certa é crucial para o sucesso do projeto, e uma compreensão clara das vantagens e desvantagens do React em relação a outras tecnologias pode ajudar a guiar essa decisão.