Heim > Web-Frontend > js-Tutorial > Warum sind Navigator, Fenster und Dokument in Nuxt-Anwendungen nicht definiert?

Warum sind Navigator, Fenster und Dokument in Nuxt-Anwendungen nicht definiert?

Barbara Streisand
Freigeben: 2024-11-11 20:35:03
Original
367 Leute haben es durchsucht

Why Are Navigator, Window, and Document Undefined in Nuxt Applications?

So lösen Sie undefinierte Navigatoren, Fenster und Dokumente in Nuxt-Anwendungen auf

Einführung

Entwickler stoßen häufig auf Fehler, bei denen Navigator, Fenster und Dokument in Nuxt-Anwendungen undefiniert bleiben. Dieses Problem tritt auf, wenn versucht wird, auf browserbezogene Informationen wie UserAgent- oder Retina-Informationen zuzugreifen.

Lösung

Um dieses Problem zu beheben, binden Sie Ihren JavaScript-Code in bestimmte Strukturen ein Stellen Sie sicher, dass die ordnungsgemäße Ausführung nur auf der Client-Seite erfolgt.

Code mit Mounted()-Hook und process.client umschließen

<script>
import { jsPlumb } from 'jsplumb'; // client-side library only, no SSR support

export default {
  mounted() {
    if (process.client) {
      // your JS code here like >> jsPlumb.ready(function () {})
    }
  },
}
</script>
Nach dem Login kopieren

Nur ​​Client-Komponente verwenden

<template>
  <div>
    <p>this will be rendered on both: server + client</p>
    
    <client-only>
      <p>this one will only be rendered on client</p>
    </client-only>
  </div>
</template>
Nach dem Login kopieren

Umgang mit nicht unterstützten SSR-Paketen

Für Bibliotheken, die SSR beim Import nicht unterstützen, sollten Sie dynamische Importe oder direktes Laden in Betracht ziehen:

export default {
  components: {
    [process.client & && 'VueEditor']: () => import('vue2-editor'),
  }
}
Nach dem Login kopieren

Zusätzliche Tipps

  • Vermeiden Sie das Verpacken von Komponenten innerhalb von wenn Sie das Rendern nicht verhindern möchten.
  • Dynamische Importe eignen sich für Bibliotheken, die später in der Anwendung verwendet werden.
  • Weitere Anleitungen finden Sie in der offiziellen Nuxt-Dokumentation (https://nuxtjs. org/docs/2.x/features/nuxt-components/#the-client-only-component)

Das obige ist der detaillierte Inhalt vonWarum sind Navigator, Fenster und Dokument in Nuxt-Anwendungen nicht definiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage