React
O objetivo deste handout é que você tenha um primeiro contato com o React. Ao final do handout você terá alguma ideia de qual é a "cara" de um app React. Para saber mais sobre React veja o tutorial oficial do React ou o tutorial disponibilizado pelo Mozilla Tutorial React by Mozilla.
Github Classroom
Crie o repositório do Github Classroom para fazer o envio deste handout. Link para o Github Classroom.
Importante
Nem todo código deste handout é JavaScript puro. Algumas (muitas) coisas são específicas do React e não funcionarão fora desse contexto.
Importante 2
Quando você for pesquisar no Google sobre React, você vai encontrar muito material utilizando classes. Essa é a uma maneira alternativa de se utilizar o React. O uso de componentes funcionais (que veremos neste handout) tem se tornado cada vez mais utilizado, mas é importante saber que existem essas duas alternativas para não utilizar soluções que não funcionarão para o seu caso.
Setup do React
- Garanta que você possui uma versão recente do Node.js. Se você fez o servidor de exercícios JS você já deve ter uma versão recente do Node.js.
-
Existem diversas formas de criar um projeto React. Neste handout vamos utilizar o Vite, para isso, abra um terminal e navegue até a pasta onde você deseja criar o projeto. Não é necessário criar uma pasta para o projeto, pois o comando a seguir já cria uma pasta com o nome do projeto. Rode o comando abaixo:
-
A estrutura de arquivos dentro do projeto será:
notes-frontend ├── node_modules ├── public │ └── vite.svg ├── src │ ├── assets │ │ └── react.svg │ ├── App.css │ ├── App.jsx │ ├── index.css │ └── main.jsx ├── .eslintrc.cjs ├── .gitignore ├── index.html ├── package-lock.json ├── package.json ├── README.md └── vite.config.js
Breve descrição das pastas e arquivos
node_modules
: pasta com as dependências do projeto;public
: pasta com arquivos estáticos, como imagens e o arquivoindex.html
;src
: pasta com os arquivos do projeto;App.css
: arquivo de estilos do componente principal;App.jsx
: arquivo do componente principal;index.css
: arquivo de estilos do arquivoindex.html
;index.jsx
: arquivo que renderiza o componente principal;.gitignore
: arquivo para ignorar arquivos e pastas no git;package.json
: arquivo com informações do projeto e dependências;package-lock.json
: arquivo com informações das dependências;README.md
: arquivo com informações sobre o projeto;vite.config.js
: arquivo de configuração do Vite.
Foram criados vários arquivos e pastas, mas neste momento vamos focar em apenas alguns deles:
O projeto possui somente um arquivo HTML, o
index.html
, que é o ponto de entrada da aplicação. Se olharmos o conteúdo desse arquivo, veremos que ele possui uma única tag<div id="root"></div>
. Essa tag é o ponto de entrada da aplicação React. O React irá renderizar os componentes dentro dessa tag.Single Page Applications (SPA) são aplicações que possuem uma única página HTML e que são atualizadas dinamicamente.
O arquivo
src/App.jsx
é o componente principal da aplicação. Ele é o componente que será renderizado dentro da tag<div id="root"></div>
do arquivoindex.html
. O arquivosrc/index.jsx
é o arquivo que renderiza o componente principal. Ele importa o componente principal e o renderiza dentro da tag<div id="root"></div>
.O arquivo
src/App.css
é o arquivo de estilos do componente principal. Ele é importado no arquivosrc/App.jsx
e é aplicado ao componente principal. -
Rode os comando abaixo para entrar na pasta do projeto, instalar as dependências e rodar o projeto:
Criando Componentes
Vamos começar criando um componente para o card
.