Skip to content

Latest commit

 

History

History
131 lines (90 loc) · 7.22 KB

README.md

File metadata and controls

131 lines (90 loc) · 7.22 KB

Trilha de React

Aprendendo a criar aplicações front-end web utilizando a biblioteca React que tem como objetivo a criação de interfaces altamente interativas. O react traz uma forma padronizada de forma que seja fácil manipular a interface de acordo com as ações do usuário.

Apresentação do projeto

Uma aplicação web para exibir os podcasts de um canal

image

Ambiente de desenvolvimento:

  • NODE (permite executarmos o projeto enquanto estamos em desenvolvimento,vem com npm)
  • YARN (é mais performático do que o mpn que já vem instalado com o node)
  • Visual Studio Code.

Fluxo de uma API (Utilizamos um API fictício)

  • Antigamente era comum utilizar Server Side Redering que tornava o servidor(backend) responsável pela regra de negócio, acesso ao banco, comunicação com serviços externos, pagamento, autenticação e visualização da aplicação (pattern MVP) e por retornar todo html da página
    • Com o surgimento de equipamentos que não utilizam HTML, tais quais, aplicações mobile e desktop, e para uma experiencia melhor para o usuário que esta ligando com a aplicação desenvolveu-se uma forma chamada SPA - Single Page Application (Aplicação de uma unica página). Quando o backend passa a não retornar mais o html, mas sim os conteúdos críticos em formato JSON. Começou a ser utilizado então a estrutura de dados JSON (Javascript Object Notation) para retornar apenas os dados. Logo a responsável pela parte de visualização da nossa aplicação não é mais o backend e sim o frontend, que determina como os dados serão visualizados. No caso da web serão dados html, css e js. O REACT, junto com o browser, vai fazer requisições e pegar os dados JSON vindo do BAckEnd e transformar em HTML. É chamada de SPA pois faz o carregamento dos dados, mas não um carregamento da tela: uma única página que muda o conteúdo.

Fluxo de uma API dentro do universo React

React tem problema com a indexação da página, ou seja, não haverá a possibilidade da página aparecer em buscar do Google, por exemplo.Por isso utilizamos o Gatsby ou NEXTjs. Os dados em JSON não são devolvidos diretamente para o browser, é enviado para o servidor do NEXT para converter os dados em HTML ou outra estrutura de dados que estamos utilizando. No SSR a criação da interface está ocorrendo pelo lado do servidor, mas nesse caso temos dois servidores: um para criar a interface e outro para API

Iniciando com o react

  • Há duas formas comuns de criar um projeto REact:
    • Utilizando o pacote create react app desenvolvido pela equipe do React Facebook que traz todas as dependencias nescessárias para que o navegador insterprete as funcionalidades que só existem no ecossistema dessas ferramentas. WebPack e Babel
    • Next, substituto do create react app. Tem mais funcionalidades, pois além do ambiente pronto para sairmos codando, traz também opiniões e ferramentas a mais.

Static Site Generation

  • A home page só é atualizada a cada periodo determinado, portanto o banco de dados não é requisitado a cada acesso de um usuário. O HTML é salvo para ser mais performático, logo a página vai ser a mesma para qualquer pessoa que utilizar durante o período.

Dicas para Windows

Não salve a pasta no diretório :\C

  • Utilize o terminal como administrador e dê preferencia para PowerShell

Iniciando o projeto react

  • dentro de uma pasta nova:
  • npx create-react-app nomedoprojeto
  • cd nomedoprojeto
  • yarn start (abre o navegador automaticamente com o projeto rodando) O create react app traz as estruturas prontas, como um template e podemos deletar o que não vamos utilizar (readme, src: deixa index e app, /public deixa o index.html. No indexhtml remove tudo ate viewport)

Iniciando projeto Next react

  • Dentro de uma nova pasta:
  • npx create-next-app nomedoprojeto
  • cd nomedoprojeto
  • yarn dev
  • Podemos utilizar next em todos os projetos react e é recomendado para páginas que vão precisar de indexação
  • Adicionando TypeScript: yarn add typescript @types/react @types/node -D
  • yarn add sass
  • yarn add date-fns
  • yarn add json-server -D
  • "server": "json-server server.json -w -d 750 -p 3333"
  • yarn build
  • yarn start para rodar em produção
  • yarn add axios
Função Comando Estrutura Estrutura final
Criando React App npx create-react-app podcastr image
Criando projeto com Next cd .. npx create-next-app image image
Configurando o TypeScript no Next.js bash yarn add typescript @types/react @types/node -D Trocar a extensão .js por .tsx Next React
Instalando o SASS yarn add sass trocar a extensão .css por .scss import '../styles/global.scss';
Instalando Json-server para converter um arquivo json em uma API fake yarn add jason-server -D Adicionar no arquivo package.json, script: "server": "json-server server.json -w -d 750 -p 3333" watchmode: servidor reiniciar cada vez que trocar uma informacao. delay: 750ms para responder. porta 3333 Iniciar o servidor utilizando o comando yarn server

Conceitos do React

  • Componentes: Uma boa prática é isolar(encapsular) os nossos elementos em componentes(funções) sempre que percebemos que algo esta se repetindo em nossa aplicação.

  • Propriedades: É uma informação que se passa de um componente para outro(atributo no html).

  • Estado: É uma forma de conseguir manipular informações de dentro do componente.

Projeto Fluxo da aplicação
image image
  • Iniciando com React Conceitos do react: * componente * estado * propriedade (passar do componente pai para o componente filho)

SEO com React (tempo de cada mudança)

Iniciando com Next.js: * Server-side rendering * Static site generation

GASTby Criando projeto com Next.js

Conteúdo Técnico do segundo dia

Por que utilizar TypeScript?

  • para suprir a necessidade de padrões que dão segurança para a escrita do código
  • É preciso configurar o typescript no next
    • yarn add typescript @types/react @types/node -D

Configurando fonte

  • fonts.google.com/specimen/lexend
    • medium 500
    • semibold 600
  • fonts.google.com/specimen/inter
    • regular 400

Criando estilos globalIsFinite

Componente: header

Componente: playername

Configurando API em JSON

Consumindo API Fake na home

SPA vs SSR vs SSG

Gerando home de forma estática

Criando build do projeto

Executandso build