Aula 2: Front-end com React (parte 1) – SpotCode | OneBitCode

Aula 2: Front-end com React (parte 1) – SpotCode | OneBitCode

• Incluindo o React no Projeto – 00:01:05
• Preparando a estrutura do projeto – 00:07:24
• Incluindo o Bulma – 00:16:10
• Incluindo as Rotas – 00:26:28
• Incluindo o Styled Components e os Icons – 00:37:56
• Criando o menu superior – 00:40:20
• Criando o menu Superior Logado – 00:53:56
• Criando a Página Home – 01:01:33
• Incluindo a barra de navegação – 01:14:33
• Criando a página Discovery – 01:25:14
• Criando a conexão com o Back-end – 01:40:53

 


 

Incluindo o React no Projeto

1 – Instale o webpacker e o react rodando:

2 – Renomeie o arquivo gerado (hello_react.jsx) para spotcode.jsx e coloque nele

3 – Coloque no head do application.html.erb

4 – Na View Home Index limpe o conteúdo atual e coloque

5 – Suba o servidor (rails s) e verifique que o component apareceu na tela

 


Preparando a estrutura do projeto

1 – Dentro de javascript crie as seguintes pastas:

– components
– screens
– services

2 – Dentro da pasta Screens crie as seguintes pastas e arquivos

– /home

– index.js

– /discovery

– index.js

– /search

– index.js

– /album

– index.js

– /favorites

– index.js

3 – Ainda na pasta javascript crie o arquivo app.scss e o arquivo app.js

4 – No arquivo App.js coloque

5 – No arquivo spotcode.jsx coloque

 


Incluindo o Bulma

1 – Instale a biblioteca react-bulma-components rodando

2 – Coloque em App.js

3 – Suba o servidor (rails s) e verifique que o component Bulma apareceu na tela

4 – No header do application.html.erb inclua

5 – No arquivo app.scss coloque:

 


Incluindo as Rotas

1 – Instale a biblioteca de rotas rodando

2 – Crie um arquivo chamado routes.js (em /javascript) e coloque nele

3 – Atualize o App.js colocando

4 – Complete as views no routes

5 – No arquivo routes coloque por último

6 – Atualize no App Controller

De:

Para:

 


Incluindo o Styled Components e os Icons

1 – Para conhecer o StyledComponents visite: https://styled-components.com

2 – Para instalar rode

3 – Para conhecer os Icons: https://react-icons.netlify.com

4 – Para instalar os Icons rode

 


 

Criando o menu superior

1 – Em components crie uma pasta assets e dentro dela a pasta images

2 – Baixe o logo (https://onebitcode.com/wp-content/uploads/2020/04/logo.png) e coloque dentro da pasta images criada anteriormente

3 – Em components crie a pasta common

4 – Dentro da pasta common crie a pasta menu com um arquivo index.js e coloque nele

5 – Em app.js coloque:

6 – Para incluirmos a navbar, container e columns (estrutura), atualize o menu para:

7 – Para incluirmos o logo coloque:

8 – Agora para ajustarmos o estilo da apresentação dos elementos vamos usar o StyledComponents, adicione:

9 – Agora vamos incluir o botão ENTRAR

Obs: Para que o APP seja atualizado browser quando você atualizar os códigos, rode em um novo terminal:

 


 

Criando o menu Superior Logado

1 – No mesmo arquivo de menu que estavamos trabalhando nós vamos adicionar o link de edição de perfil e logout baseado na rota atual do usuário (ou seja, quando ele estiver na home vamos mostrar o botão ENTRAR quando ele não estiver vamos mostrar o link de edição do perfil e logout), no component menu improte:

2 – Vamos incluir dentro do component uma condição para devolver o botão ENTRAR quando estiver logado e devolver os links de edição e logout quando não estiver logado:

3 – Dentro do primeiro, vamos colocar o botão que já criamos:

4 – Onde tinhamos o botão vamos colocar:

5 – Vamos importar o component Dropdown para o segundo caso:

6 – Agora no else, coloque:

7 – Seu arquivo final deve ter ficado desta forma:

8 – Para finalizar, vamos mudar no arquivo devise o método de logout:

de:

para:

 


 

Criando a Página Home

1 – Dentro de components/common vamos criar um container para envolver nossas telas, crie um arquivo chamado section_wrapper e coloque nele:

2 – Na Screen Home coloque a estrutura:

3 – Agora vamos colocar a primeira frase, adicione:

4 – Vamos colocar um espaço superior estilizando o component Heading

5 – Agora vamos incluir a listagem no meio

6 – Agora vamos colocar estilo nele

7 – Vamos incluir o botão de cadastro

8 – Agora vamos colocar um pouco de estilo nele

9 – Pronto, nosso arquivo ficou assim

 


 

Incluindo a barra de navegação

1 – Crie um arquivo chamado navbar_footer dentro de components/common e coloque nele:

2 – Vamos incluir a estrutura da navbar

3 – Vamos criar as customizações de estilo para a Navbar e para a Columns

4 – Vamos incluir os links dentro das columns

5 – Agora vamos incluir os icones

6 – No Discovery Screen coloque

7 – No Search Screen coloque

8 – No Favorites Screen coloque

9 – No Album Screen coloque

10 – Em application_controller.rb adicione:

 


 

Criando a página Discovery

1 – Crie um component chamado discovery e coloque nele

2 – Importe ele em DiscoveryScreen

3 – Crie um component Album e coloque nele

4 – Importe ele no component Discovery

5 – Crie uma div com espaços especiais

6 – Crie a estrutura da página

7 – Vamos criar alguns dados fake para preencher os albums

8 – Em album, vamos criar um component especial de espaçamento e importar os components bulma

9 – Vamos criar a estrutura agora

10 – Vamos incluir um link para a página de album (mudando fragment para link)

11 – Voltando ao discovery vamos criar N components Album baseado nos dados fake que criamos

12 – Agora vamos injetar o resultado no component

 


 

Criando a conexão com o Back-end

1 – Instale o axios para fazer chamadas web através do javascript rodando

1 – Em javascript crie uma pasta chamada services

2 – Dentro dela crie um arquivo chamado api.js e coloque nele:

3 – Crie um arquivo chamado discovery.js e coloque nele