Visualizações
O Nuxt fornece várias camadas de componentes para implementar a interface do usuário da sua aplicação.
app.vue
Por padrão, o Nuxt tratará este arquivo como o ponto de entrada e renderizará seu conteúdo para cada rota da aplicação.
<template>
<div>
<h1>Bem-vindo à página inicial</h1>
</div>
</template>
Se você está familiarizado com Vue, pode se perguntar onde está o main.js
(o arquivo que normalmente cria uma aplicação Vue). O Nuxt faz isso nos bastidores.
Componentes
A maioria dos componentes são partes reutilizáveis da interface do usuário, como botões e menus. No Nuxt, você pode criar esses componentes no diretório components/
, e eles estarão automaticamente disponíveis em toda a sua aplicação sem a necessidade de importá-los explicitamente.
<template>
<div>
<h1>Bem-vindo à página inicial</h1>
<AppAlert>
Este é um componente importado automaticamente.
</AppAlert>
</div>
</template>
Páginas
As páginas representam visualizações para cada padrão de rota específico. Cada arquivo no diretório pages/
representa uma rota diferente exibindo seu conteúdo.
Para usar páginas, crie o arquivo pages/index.vue
e adicione o componente <NuxtPage />
ao app.vue
(ou remova app.vue
para a entrada padrão). Agora você pode criar mais páginas e suas rotas correspondentes adicionando novos arquivos no diretório pages/
.
<template>
<div>
<h1>Bem-vindo à página inicial</h1>
<AppAlert>
Este é um componente importado automaticamente
</AppAlert>
</div>
</template>
Layouts
Layouts são envoltórios em torno das páginas que contêm uma interface de usuário comum para várias páginas, como um cabeçalho e rodapé. Layouts são arquivos Vue que usam componentes <slot />
para exibir o conteúdo da página. O arquivo layouts/default.vue
será usado por padrão. Layouts personalizados podem ser definidos como parte dos metadados da sua página.
Se você tiver apenas um layout na sua aplicação, recomendamos usar app.vue
com <NuxtPage />
em vez disso.
<template>
<div>
<NuxtLayout>
<NuxtPage />
</NuxtLayout>
</div>
</template>
Se você quiser criar mais layouts e aprender como usá-los em suas páginas, encontre mais informações na seção de Layouts.
Avançado: Estendendo o Template HTML
Se você só precisa modificar o <head>
, pode consultar a seção de SEO e meta.
Você pode ter controle total sobre o template HTML adicionando um plugin Nitro que registra um hook. A função de callback do hook render:html
permite que você altere o HTML antes de ser enviado ao cliente.
export default defineNitroPlugin((nitroApp) => {
nitroApp.hooks.hook('render:html', (html, { event }) => {
// Este será uma representação em objeto do template html.
console.log(html)
html.head.push(`<meta name="description" content="Minha descrição personalizada" />`)
})
// Você também pode interceptar a resposta aqui.
nitroApp.hooks.hook('render:response', (response, { event }) => { console.log(response) })
})
※Esta página é uma tradução não oficial da documentação oficial do Nuxt.js.
A página correspondente na documentação oficial está aqui:
https://nuxt.com/docs/3.x/getting-started/views