Projeto feito para apresentação do meetup interno da Fácil informática. Apresentando o Next.JS e seus conceitos como Headless
Desenvolvido com Nextra
Nextra é uma biblioteca desenvolvida em Next.js e MDX no-code site gerador.
Created by @shuding and @pacocoursey at Vercel. Released under the MIT license. Adaptado por Anderson Rissardi.
Melhor visualização através do link publico do Notion. Veja aqui
Criar um painel interno em que seja possível visualizar todos os meetups que já aconteceram na Fácil conhecendo o NEXT.JS
Mookup do painel de meetups
Painel bem simples, uma lista de meetups que ao selecionar o meetup o vídeo seria exibido no player.
Alinhado a esquerda um grid de cards que seriam os registros.
Ao selecionar, os dados do Meetup seriam carregados
Pode ser acessado a qualquer momento através do endereço interno:
Publicado somente internamente**
→ É um framework para criação de sistemas WEB;
- Parte cliente é React
- Prós:
- Melhores bibliotecas de componentes
- Maiores comunidades
- Performance
- Contras:
- Pode acontecer um overhead no client-side
- Constantes atualizações
- Prós:
- Parte servidor é Node.JS
- Prós:
- Altamente escalável
- Simples e leve para hospedar
- Rápido para começar a desenvolver
- Contras:
- Dificuldades no tratamento de erros assíncronos
- Não tipado
- Prós:
→ Sistema híbrido SSG(Geração statica) e SSR(Server Side Rendering)
- Páginas completamente staticas, geradas ou não no momento do build
- Páginas staticas geradas no build com a utilização de dados externos
- Páginas sempre serão processadas no servidor
- Páginas processadas no servidor somente a primeira vez
- Páginas processadas no servidor somente quando determinada condição for atendida(UpdatedOn > Última geração)
Nenhuma página statica, todas geradas sempre sobdemanda.
Principais diferenciais
- Ter o Node.JS ≥ 10.13
> npx create-next-app
> npm run dev
Pronto!
Basta acessar http://localhost:3000
Estrutura de pastas
-
Não é necessário desenvolver toda a estrutura de rotas da aplicação
-
Utiliza um sistema parecido com o WebForms e outras tecnologias mais antigas
- Para criar uma página, basta criar um arquivo .js(React) na pasta ~/Pages
- O nome do arquivo será utilizado como rota
Então:
Ao criar um arquivo about.js dentro da pasta pages bastaria acessar:
O ponto de maior interesse talvez seja a geração do pacote final.
No momento em que o build será feito é quando um grande processamento ocorre gerando o pacote final a ser hospedado.
npm run build
Todo o processamento começa, fazendo conexão com banco de dados e tudo o que mais for necessário.
O pacote gerado é enviado para o diretório: ~/.next
Para rodar o pacote gerado é necessário acessar a pasta do projeto e executar o comando
npm run start
Lançamento oficial da nova versão foi em 29/03/2021
- 3x mais rápido que a versão 10.
- Mais de 1.540 colaboradores independentes atuaram no projeto.
- Projeto totalmente público no GitHub.
- Pronto para escalabilidade
- Provedor agnóstico para os maiores sistema de comércio eletrônico do mundo, como Shopify por exemplo.
É uma biblioteca feita em NEXTJS que já está integrada a VERCEL, empresa criadora do Next.JS.
Ela faz a exibição de arquivos markdown (.md) e .mdx que estão no diretório ~/pages/doc da aplicação.
Arquivos .mdx são arquivos .md que permitem a adição de JS, geralmente com bibliotecas como React entre outras.
Ela faz todo o roteamento, navegação e exibição da aplicação.
Basta alimentar com os conteúdos e a visualização será feita.
- Documentação Nextra
Nextra: Next.js static site generator
-
Estrutura do projeto
./root
-
next.config.js
→ Esse arquivo faz as configurações iniciais da ferramenta, definindo qual arquivo deve utilizar para controlar o tema da aplicação.
-
theme.config.js
→ Esse arquivo faz o controle do tema da aplicação. Definindo coisas como:
- Identidade visual
- Tipografia
- Titulo da Navbar
- Opções de responsividade/portabilidade
- Logotipo e todos os ícones
- Rodapé
-
Pasta public → Dentro dessa pasta ficam todos os "resources" da aplicação. No geral todo tipo de imagem que é utilizado como ícone ou até mesmo imagens de conteúdo do site.
→ No momento em que o build da aplicação é feito, a plataforma processa todos os arquivos dessa pasta otimizando ao máximo esses arquivos, inclusive, adaptando para se adequar a todos os viewport necessários.
-
Pasta pages
→ Todas as "páginas" desenvolvidas sobre a ferramenta NextJS ficam, obrigatoriamente no diretório ~/pages. Nesse caso, como estamos utilizando a biblioteca Nextra, as páginas são feitas em arquivos .md ou .mdx.
→ meta.json Esse arquivo define a ordem dos itens que serão exibidos na navegação.
É ele quem define como funciona a navegação entre as páginas.
É um JSON aonde o nome da propriedade deve ser o mesmo nome do arquivo, o valor da propriedade é a legenda que será exibida na página.
→ index.md Esse é o "EntryPoint" da ferramenta. É a página configurada para ser exibida primeiro.
Ao acessar o site, essa página será exibida.
-
-
Sempre que um Meetup for apresentado, deverá ser criado um arquivo .mdx na pasta ~/pages/doc/Nome meetup
- A vercel é a empresa que criou, mantém e estimula a comunidade NEXT.JS.
- Ela criou um ambiente de publicação de aplicações totalmente voltado para o Next.
Develop. Preview. Ship. For the best frontend teams - Vercel
- Upload do sistema é todo baseado no sistema Git
- Possuí integração com GitHub, GitLabs e as principais plataformas do mercado
- Custo de hospedagem zero - até determinada quantidade de requisições
Comecei fazendo o Deploy para produção. A Vercel é bem intuitiva e bastou meia dúzia de cliques e já tinha um site pronto e um repositório pronto no github.
Nextra: Next.js static site generator
Devido ao conteúdo e direitos de imagem dos participantes não é podemos hospedar publicamente o painel. Ele foi exibido somente no momento da apresentação e excluído após a apresentação. Deve-se utilizar somente o endereço interno.
Explicando SSG x SSR
Next.JS mecânica hibrida
Basic Features: Data Fetching | Next.js
Nextra
Boilerplates:
- MaterialUI:
NextJS Material Kit by Creative Tim
- e-commerce:
- Vários templates:
15 Free React Templates for Your Next Project
Vamos fazer uma liberação na plataforma Vercel..
1 - Mostrar o e-commerce criado com a ferramenta ecommerce da Vercel desenvolvido com Next.JS
ACME Storefront | Powered by Next.js Commerce - ACME Storefront
2 - Acessar o blog
3 - Alterar o conteúdo loremIpsum do site pelo conteúdo do Mussum Ipsum
Mussum Ipsum - O melhor lorem ipsum do mundis
→ Gerar 4 parágrafos
→ Alterar o texto
→ Fazer o commit
→ Verificar o comportamento do site