Rumah > hujung hadapan web > tutorial js > Mengapakah `navigator`, `window` dan `document` tidak ditentukan dalam aplikasi Nuxt saya?

Mengapakah `navigator`, `window` dan `document` tidak ditentukan dalam aplikasi Nuxt saya?

Susan Sarandon
Lepaskan: 2024-11-10 22:46:02
asal
1007 orang telah melayarinya

Why are `navigator`, `window`, and `document` undefined in my Nuxt application?

Cara Menangani Navigator / tetingkap / dokumen yang tidak ditentukan dalam Aplikasi Nuxt

Pengenalan

Dalam Aplikasi Nuxt, mengakses pembolehubah penyemak imbas global seperti navigator, tetingkap dan dokumen kadangkala boleh mengakibatkan ralat yang tidak ditentukan. Ini kerana rangka kerja Nuxt menggunakan pemaparan sisi pelayan (SSR), di mana kod pada mulanya dilaksanakan pada pelayan sebelum diberikan pada klien.

Penyelesaian

The kunci untuk menyelesaikan isu ini adalah untuk mengehadkan kod yang bergantung kepada penyemak imbas kepada bahagian klien. Untuk mencapai matlamat ini, terdapat beberapa strategi:

1. Balutan Kod Bersyarat

Balut kod anda dalam keadaan if (process.client) untuk melaksanakannya hanya pada bahagian klien. Ini memastikan bahawa kod hanya dijalankan selepas fasa SSR.

<script>
  export default {
    mounted() {
      if (process.client) {
        // Your JS code here
      }
    },
  }
</script>
Salin selepas log masuk

2. Komponen

Buat komponen untuk membungkus elemen yang harus diberikan hanya pada klien. Ini menghalang mereka daripada dilaksanakan semasa SSR.

<template>
  <div>
    <client-only>
      <p>This will only be rendered on client</p>
    </client-only>
  </div>
</template>
Salin selepas log masuk

3. Import Dinamik

Jika perpustakaan tidak menyokong SSR, anda boleh menggunakan import dinamik. Ini melengahkan pemuatan pustaka sehingga ia diperlukan pada bahagian pelanggan, memastikan ia tidak dilaksanakan semasa SSR.

export default {
  components: {
    [process.client &&& 'VueEditor']: () => import('vue2-editor'),
  },
}
Salin selepas log masuk

Nota:

  • Pembungkusan komponen anda dalam melangkau pemaparan, bukan pelaksanaan.
  • Sesetengah pakej mungkin memerlukan konfigurasi tambahan untuk berfungsi dengan betul dengan SSR.

Atas ialah kandungan terperinci Mengapakah `navigator`, `window` dan `document` tidak ditentukan dalam aplikasi Nuxt saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan