Crie sua próxima aplicação web com Nuxt3

Crie sua próxima aplicação web com Nuxt3

Muitos fizeram do Vue seu framework favorito, então ele é usado cada vez mais a cada dia. Pessoalmente, o que mais gosto nele é que é fácil de entender: você não terá problemas mesmo que toda a sua equipe seja nova nessa tecnologia, embora seja muito poderosa e uma excelente opção mesmo para as aplicações mais complexas.

O Nuxt é escrito em cima do Vue, mas permite executá-lo tanto no lado do cliente quanto no lado do servidor (uma grande vantagem quando se trata de SEO). Além disso, possui diversas ferramentas que tornam o desenvolvimento mais rápido e agradável. Você pode imaginar nunca mais ter que escrever uma importação para seus componentes? Esta estrutura é inteligente o suficiente para fazer isso por você. Você também tem a opção de não escrever o URL de cada uma de suas páginas, mas simplesmente organizá-las em pastas e o Nuxt gerará um roteador para você. Outro grande motivo para usar o Nuxt é desenvolver aplicativos de página única e conteúdo estático em vários arquivos HTML.

A melhor maneira de conhecer o framework é usando. Por isso, vamos fazer uma aplicação web para testá-la. Uma loja online tem os requisitos para testar todas as funções do Nuxt. Vamos começar com o básico.

Requisitos

1- NodeJS

2- Yarn (opcional)

npm install --global yarn

3- Um editor como o VS Code

Para referência, deixo uma cópia do repositório que faremos aqui.

Inicializar Nuxt

Em um terminal ou linha de comando vamos para a pasta onde queremos nosso repositório:

  • npx nuxi init store - Para criar um novo aplicativo chamado store
  • cd store - Para abrir a pasta do projeto
  • yarn install - Para instalar todas as dependências
  • yarn dev -o - Para executar o aplicativo

Em nosso navegador podemos ver nossa nova página com o conteúdo padrão do Nuxt.

Roteador

Em pequenas aplicações tudo pode ser integrado em um único arquivo. Porém, neste caso usaremos a pasta pages para ter cada URL em um arquivo diferente.

Em seguida, excluiremos o arquivo app.vue criado por padrão.

Bom. Agora criamos uma pasta chamada pages que o Nuxt reconhecerá. Automaticamente, ele criará um roteador para nós.

Dentro da pasta pages vamos criar um arquivo chamado index.vue:

<template> 
<div> 
Olá mundo 
</div> 
</template>

Podemos verificar em nosso navegador que o conteúdo foi substituído.

Se criarmos outro arquivo chamado promocoes.vue,

<template> 
<div> 
Promocoes 
</div> 
</template> 

podemos vê-lo em nosso navegador http://localhost:3000/promocoes

Também podemos ter pastas dentro de páginas para gerar parte do conteúdo da URL, como categorias dentro de http://localhost:3000/categories/sports

Próxima etapa: vamos criar uma nova pasta dentro de páginas chamadas categorias e dentro de um arquivo chamado sports.vue:

<template> 
<div> 
Esportes
</div> 
</template>

Dentro do template temos nosso HTML. Para incluir JavaScript e um estilo CSS, faríamos assim:

<modelo>
<div class="container">
Me diga, me diga }}
<span></span>
<button @click="increment()">+1</button>
</div>
</template>
<script>
exportação padrão {
dados() {
Retorna {
contagem: 0
}
},
métodos: {
aumentar(){
esta.conta++
}
},
}
</script>
<estilo de escopo>
.recipiente{
margem: 25px;
}
período{
largura: 25px;
exibição: bloco em linha;
}
</style>

Dentro do template, podemos acessar o script usando {{ ... }}

Também vale a pena dar uma olhada em @click data() e métodos:{}

No estilo, inserimos a palavra-chave scoped para indicar que o estilo deve ser aplicado apenas a este documento e não a todo o site.

Nesse caso, usamos o formulário da API de opções. Há também a API de composição, mas falaremos sobre as diferenças mais tarde.

Layout

Nosso cabeçalho e rodapé serão sempre os mesmos. Podemos colocá-lo em um layout para que não precisemos incluí-lo em cada página.

Vamos criar uma nova pasta chamada layouts. Dentro dele, faremos o mesmo com um arquivo chamado default.vue

<template> 
<div> 
Cabeçalho 
<slot /> 
Rodapé
</div> 
</template> 

No cabeçalho podemos colocar o nome da nossa loja, um logotipo, links e informações do usuário.

Componentes

Dentro de cada página podemos usar e também aninhar componentes. Vamos criar uma nova pasta chamada components, dentro dela criamos Header.vue

<template> 
<div> 
Logo, Minha lojka, Links, Usuario 
</div> 
</template> 

Para usar este componente devemos chamá-lo em nosso layout default.vue

<template>
<div>
<cabeçalho/>
<espaço />
Rodapé
</div>
</template>

Em outros frameworks, teríamos que importar nosso componente, mas não no Nuxt. Aqui é automático. No navegador vemos nossa página principal que usa o layout padrão, que por sua vez usa o componente Header.

Recursos Públicos

Para adicionar um logotipo ao nosso cabeçalho, podemos usar a pasta pública. Vamos criar esta pasta e dentro de outra chamada img.

Dentro dele, vamos colocar um arquivo de imagem logo.png. Podemos encontrar uma imagem isenta de royalties no Google

Vamos modificar nosso arquivo Header.vue

<template> 
<div> 
<img src="/img/logo.png" alt="logo" /> 
Minha loja, Links, Usuario 
</div> 
</template>

A imagem deve aparecer no navegador.

Para navegação podemos usar <a>, mas é melhor usar <NuxtLink> pois não requer que a página inteira seja atualizada. Nesse caso, nosso cabeçalho não precisará ser criado novamente. Apenas o conteúdo será alterado.

Header.vue

<template> 
<div> 
<NuxtLink to="/"> 
<img src="/img/logo.png" alt="logo"/> 
</NuxtLink> 
<span/> 
Minha loja 
<span/> 
Links: 
<NuxtLink to="/categorias/esportes">Esportes</NuxtLink> 
<span/>
Usuario 
</div> 
</template> 
<style scoped> 
span{ 
width: 25px; 
display: inline-block; 
} 
</style>

Recapitulação

Temos visto:

  • Como criar páginas e como navegar entre elas.
  • A criação de componentes e como chamá-los de uma página.
  • O uso de templates (layouts) para evitar repetir o mesmo código em cada página.
  • O armazenamento de recursos públicos e como acessá-los a partir de um componente.

Também vimos como é bom ter um roteador que o Nuxt escreve para nós, bem como importações geradas automaticamente.

Neste ponto, recomendo fazer o componente de rodapé por conta própria. Adicione links de navegação quando apropriado e personalize o estilo da loja.

Nos próximos artigos veremos:

  • Bibliotecas de componentes para construir uma interface de usuário
  • Armazenamento de dados no cliente
  • Gerenciamento do estado do aplicativo
  • Conexões com o back-end
  • Segurança
  • Tratamento de erros
  • Publicar no ambiente de produção
  • Notificações
  • PWAs
  • Testes de conformidade

Espero que este framework o inspire e você goste muito de trabalhar com ele.