O que preciso saber para aprender React?
Tags: react, javascript, beginners, braziliandevs
Published: 2021-04-08 20:13:06

Capa por <a href="https://unsplash.com/@casparrubin?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Caspar Camille Rubin</a> no <a href="https://unsplash.com/s/photos/react.js?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
  
Meu primeiro contato com React, na Semana de Informática da UFV, foi uma experiência traumática. Eu não entendia nada, mesmo sabendo programar. As linhas de código não faziam sentido. Era Redux, React Router, Classes, ComponentDidIsso, ComponentDidAquilo. Levei mais de 1 ano pra ter coragem de tentar aprender novamente.

Pelo que tenho visto no Twitter e em várias comunidades, as dificuldades de outras pessoas são as mesmas que eu tive. Então, para evitar que enfrentem a mesma dificuldade que eu, vamos ao que interessa.

# Sumário

- [HTML e CSS](#html-e-css)
- [Javascript](#javascript)
- [Programação Funcional](#programação-funcional)

## HTML e CSS

Parece simples, né? Mas saber HTML e CSS faz muita diferença. Conhecer qual o propósito de cada elemento que pode ser usado num código HTML impacta diretamente na qualidade da sua aplicação. Um HTML e CSS bem construído impactam diretamente na Acessibilidade, SEO, legibilidade e experiência do usuário. Usar divs(ou tables 😬) está longe das melhores práticas.

Onde encontro conteúdo?

- [W3Schools - HTML](https://www.w3schools.com/html)
- [W3Schools - CSS](https://www.w3schools.com/css)
- [HTML.com](https://html.com)
- [LearnLayout - CSS](https://learnlayout.com)

## Javascript

Esse aqui é indispensável. Quando comecei a aprender React, eu não sabia Javascript, então tive muita dificuldade em entender a sintaxe, funções anônimas, os problemas com tipos e alguns operadores. Se eu soubesse JS antes de tentar aprender React, esse processo certamente teria sido bem mais simples e menos traumático.

Do meu ponto de vista, os principais pontos da linguagem são:

- AJAX (Fetch, async/await e Promises)
- Spread Operator
- Strict equality vs Loose equality
- Entender como "undefined" funciona
- Object e Array

Se tiver conhecimentos sólidos sobre o que citei, provavelmente você não terá grandes dificuldades no seu aprendizado.

Onde encontro conteúdo?

- [FreeCodeCamp](https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/)
- [CodeAcademy](https://www.codecademy.com/learn/introduction-to-javascript)
- [Learn JavaScript](https://www.learn-js.org)

## Programação Funcional

A partir da versão 16.8 o React migrou a criação de componentes para funções, dando o suporte ao controle de estados e todo o ciclo de vida do componente usando funções.

Nas versões anteriores, os componentes eram declarados como classe, o ciclo de vida era gerenciado através de métodos embutidos(componentDidMount,componentDidUpdate, etc) e os estados eram controlados através de atributos e métodos.

Com a nova versão, é possível controlar todo o componente usando apenas funções. Além disso, foi criada também a "Context API", que veio para suprir a necessidade de uso do <i>Redux</i> para controlar estados "globais" em uma aplicação.

Onde encontro conteúdo?

- [Programação Funcional para Iniciantes - Training Center](https://medium.com/trainingcenter/programação-funcional-para-iniciantes-9e2beddb5b43)
- [O que é programação funciona e qual a sua importância - Fellipe Couto](https://dev.to/fellipecouto/programao-funcional-o-que--e-qual-a-importncia-2nia)
- [Fundamentos da programação funcional - Paula Vaz](https://medium.com/@paula_vaz/fundamentos-de-programação-funcional-4b483aeeda9d)

# Conclusão

Os 3 tópicos acima não necessariamente cobrem tudo o que você precisa saber para entender como o React funciona, mas eles podem te dar um bom direcionamento para aprender a usar essa biblioteca que revolucionou o desenvolvimento front-end. Boa sorte nos seus estudos!

Gostou deste artigo? Deixe suas reações e me siga em outras redes: [Twitter](https://twitter.com/reisdev) | [Instagram](https://instagram.com/reisdev) | [Youtube](https://youtube.com/reisdev). 

Até o próximo artigo!👋🏽