Die SSR

Nuxt UI hat First-Party-Unterstützung für Vue SSR. Dieses Handbuch wird Ihnen helfen, es vollständig aktiviert zu haben.

@@@ph000@@Verwendung

Wenn Sie Nuxt UI mit Nuxt Framework verwenden, wird SSR-Server vollständig aus der Box funktionieren. Wenn Sie es jedoch mit reinem Vue verwenden, müssen Sie einige Details beachten, damit es wie erwartet funktioniert.

Farbvariableninjektion

Nuxt UI injiziert standardmäßig in die <head> der Dokumentfarbvariablen, die in allen Komponenten verwendet werden. Da das Dokument nicht von der UI-Bibliothek in der Vue SSR verwaltet wird, müssen Sie dies manuell injizieren.

Sie können das tun, indem Sie @unhead wie folgt verwenden:

import { createHead, renderSSRHead } from '@unhead/vue/server'

// Create the header with unhead
const head = createHead()

// Render SSR header and append it to the SSR application instance
const payload = await renderSSRHead(head)
app.head.push(payload.headTags)

Farbschemaerkennung

Das gleiche gilt für die Farbschemaerkennung. Um aufgrund des ausgewählten Farbschemaunterschieds Flashings im SSR zu vermeiden, müssen Sie das Farbschema des Benutzers vor der Anwendungsinitialisierung erkennen.

Wenn Sie das unten stehende Skript zu <head> Ihres Dokuments hinzufügen, wird erkannt, ob der Benutzer ein dunkles Thema verwendet, und daher wird der SSR auch im dunklen Thema gerendert.

<script>
const theme = localStorage.getItem('vueuse-color-scheme') || 'auto'
if (theme === 'dark' || (theme === 'auto' && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
  document.documentElement.classList.add('dark')
} else {
  document.documentElement.classList.remove('dark')
}
</script>

Icons Anzeige

Nuxt UI bündelt die verwendeten Symbole in Ihrem Build, so dass sie während SSR gerendert werden und vollständig offline arbeiten, sobald Sie die Symbolsammlung lokal installieren, ohne dass eine Anfrage an die Iconify API gestellt wird. Siehe die Icons integration, um dies einzurichten und eigene Symbole zu bündeln.