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:
Nada deveria ser perguntado, mas se você tiver que escolher opções, escolha as opçõesReacteJavaScript. -
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.jsBreve 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.jsxe é aplicado ao componente principal. -
Rode os comandos 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.
