Nuxt アプリでナビゲーター、ウィンドウ、ドキュメントが定義されていないのはなぜですか?

DDD
リリース: 2024-11-11 15:16:02
オリジナル
610 人が閲覧しました

Why Are Navigator, Window, and Document Undefined in My Nuxt App?

Nuxt のナビゲーター/ウィンドウ/ドキュメントでの未定義エラーに対処する方法

Nuxt アプリケーション内でユーザー エージェントまたは Retina 情報を取得しようとしたとき、ナビゲーター、ウィンドウ、またはドキュメントが未定義であることを示すエラーが発生する場合があります。これは、サーバー側レンダリング (SSR) 中に JavaScript コードが実行され、ウィンドウやナビゲーターなどのブラウザー固有のオブジェクトにアクセスできないために発生します。

解決策

この問題を解決するには、ロジック JS コードを次の構造内でラップします:

<script>
  import { jsPlumb } from 'jsplumb'

  export default {
    mounted() {
      if (process.client) {
        // Your JS code here, like: jsPlumb.ready(function () {})
      }
    },
  }
</script>
ログイン後にコピー

これにより、コードはこれらのオブジェクトが利用可能なクライアント側でのみ実行されるようになります。さらに、 の使用を検討してください。

<template>
  <div>
    <p>Rendered on both: server + client</p>
    
    <client-only>
      <p>Rendered only on client</p>
    </client-only>
  </div>
</template>
ログイン後にコピー

追加のヒント

  • SSR のサポートについては、ライブラリのドキュメントを確認してください。サポートされていない場合は、動的インポートまたは直接インポートを使用してください。
  • 例:

    export default {
    components: {
      [process.client && 'VueEditor']: () => import('vue2-editor'),
    }
    }
    ログイン後にコピー

    これらの手法を使用すると、Nuxt アプリケーション内のナビゲーター、ウィンドウ、ドキュメント オブジェクトにアクセスでき、発生した未定義のエラーを解決します。

以上がNuxt アプリでナビゲーター、ウィンドウ、ドキュメントが定義されていないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート