/minicurso-react

Código fonte de acompanhamento para o minicurso sobre React apresentado na SNCT 2022 - IFSP Caraguatatuba

Primary LanguageTypeScript

Minicurso: React Zero-to-Hero

IFSP - Campus Caraguatatuba

Semana Nacional de Ciência e Tecnologia 2022

Eduardo P de Sousa edupsousa@gmail.com

Ambiente de Desenvolvimento

Copiando o Repositório

Esse repositório contém o código-fonte do aplicativo usado como base para o mini-curso. Para obter uma cópia do código utilize o comando:

git clone https://github.com/edupsousa/minicurso-react.git

Após copiar o repositório acesse o diretório do projeto e então instale as dependências e execute o servidor de desenvolvimento do Vite.JS usando os comandos:

cd minicurso-react/tutorial
npm install
npm run dev

Se tudo correu bem você verá uma mensagem parecida com a mostrada abaixo:

  VITE v3.X.X  ready in X ms

  ➜  Local:   http://127.0.0.1:5173/
  ➜  Network: use --host to expose

[TypeScript] Found 0 errors. Watching for file changes.

Acesse o endereço mostrado na mensagem http://127.0.0.1:5173/ para visualizar o aplicativo em funcionamento.

Abra o diretório minicurso-react/tutorial no editor da sua preferência. O ponto de entrada para o código-fonte do aplicativo é o arquivo: src/main.tsx.

Branches do Repositório

Esse repositório contém 2 branches que abordam tópicos um pouco além do curso básico de React:

O primeiro deles é o uso de contextos para evitar a passagem de propriedades entre diversos níveis de componentes, o chamado prop drilling. Você encontra o código dessa branch aqui.

O uso de contextos facilita a comunicação entre os componentes e a injeção de dependências (o que costuma ser útil para diversos casos). Porém, todos os componentes que dependem de um contexto são renderizados novamente a cada mudança nesse contexto (ainda que o componente dependa de uma parte do contexto que não mudou). Isso pode gerar problemas de performance e por isso não é recomendado utilizar o contexto como provedor do estado global da sua aplicação (exatamente como fizemos na outra branch 😬).

Para resolver esse tipo de problema o ideal é usar uma ferramenta feita específicamente para gerenciar o estado global da aplicação. Existem diversas alternativas, algumas mais opinativas como Redux. E outras mais flexíveis como Zustand. Em nosso exemplo optamos por utilizar a ferramenta Zustand por sua simplicidade e flexibilide. Você pode encontrar o código dessa branch aqui.

Navegando pelos Commits do Repositório

Os commits do repositório seguem uma ordem "mais ou menos didática" para construção do aplicativo. Assim, recomendo que você dê uma olhada na lista de commits e navegue pela alterações introduzidas por cada um deles para entender como esse exemplo foi construído.

Aviso:

Por se tratar de um repositório "didático" futuras mudanças nesse repositório podem afetar o histórico de commits das branches (commits podem ser apagados, inseridos ou modificados no histórico).

Referências

Para começar um projeto "do zero":

Após instalar o Node.JS basta utilizar o comando npm create vite@latest para iniciar um novo projeto. Para mais informações veja a documentação aqui.