shared
Use o diretório shared/ para compartilhar funcionalidades entre o aplicativo Vue e o servidor Nitro.
O diretório shared/
permite que você compartilhe código que pode ser usado tanto no aplicativo Vue quanto no servidor Nitro.
O diretório shared/
está disponível no Nuxt v3.14+.
O código no diretório shared/
não pode importar nenhum código Vue ou Nitro.
As importações automáticas não estão habilitadas por padrão no Nuxt v3 para evitar mudanças que possam quebrar projetos existentes.
Para usar essas utilidades e tipos importados automaticamente, você deve primeiro definir future.compatibilityVersion: 4
no seu nuxt.config.ts
.
Uso
Método 1: Exportação nomeada
export const capitalize = (input: string) => {
return input[0] ? input[0].toUpperCase() + input.slice(1) : ''
}
Método 2: Exportação padrão
export default function (input: string) {
return input[0] ? input[0].toUpperCase() + input.slice(1) : ''
}
Agora você pode usar utilitários importados automaticamente no seu aplicativo Nuxt e no diretório server/
.
<script setup lang="ts">
const hello = capitalize('hello')
</script>
<template>
<div>
{{ hello }}
</div>
</template>
export default defineEventHandler((event) => {
return {
hello: capitalize('hello')
}
})
Como os Arquivos São Escaneados
Apenas arquivos nos diretórios shared/utils/
e shared/types/
serão importados automaticamente. Arquivos aninhados dentro de subdiretórios desses diretórios não serão importados automaticamente, a menos que você adicione esses diretórios a imports.dirs
e nitro.imports.dirs
.
A forma como as importações automáticas de shared/utils
e shared/types
funcionam e são escaneadas é idêntica aos diretórios composables/
e utils/
.
-| shared/
---| capitalize.ts # Não importado automaticamente
---| formatters
-----| lower.ts # Não importado automaticamente
---| utils/
-----| lower.ts # Importado automaticamente
-----| formatters
-------| upper.ts # Não importado automaticamente
---| types/
-----| bar.d.ts # Importado automaticamente
Qualquer outro arquivo que você criar na pasta shared/
deve ser importado manualmente usando o alias #shared
(configurado automaticamente pelo Nuxt):
// Para arquivos diretamente no diretório shared
import capitalize from '#shared/capitalize'
// Para arquivos em diretórios aninhados
import lower from '#shared/formatters/lower'
// Para arquivos aninhados em uma pasta dentro de utils
import upper from '#shared/utils/formatters/upper'
Este alias garante importações consistentes em toda a sua aplicação, independentemente da localização do arquivo que está importando.
Veja também guide > concepts > auto-imports※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/guide/directory-structure/shared