BLACK FRIDAY - Get 35% off your Mastering Nuxt license!

Metode Validasi

Nuxt.js memungkinkan Anda menentukan metode validator di dalam komponen rute dinamis Anda.

  • Type: Function atau Async Function

validate dipanggil setiap kali sebelum menavigasi ke rute baru. Ini akan disebut sisi server sekali (pada permintaan pertama ke aplikasi Nuxt) dan sisi klien saat menavigasi ke rute lebih lanjut. Metode ini mengambil konteks object as an argument.

validate({ params, query, store }) {
  return true // jika parameternya benar
  return false // akan menghentikan Nuxt.js untuk membuat rute dan menampilkan halaman kesalahan
}
async validate({ params, query, store }) {
  // menunggu pengerjaan
  return true // jika parameternya benar
  return false // akan menghentikan Nuxt.js untuk membuat rute dan menampilkan halaman kesalahan
}

Anda juga dapat mengembalikan fungsi:

validate({ params, query, store }) {
  return new Promise((resolve) => setTimeout(() => resolve()))
}

Nuxt.js memungkinkan Anda menentukan metode validator di dalam komponen rute dinamis (Contoh: pages/users/_id.vue).

Jika metode validasi tidak mengembalikan true, Nuxt.js akan secara otomatis memuat halaman kesalahan 404.

export default {
  validate({ params }) {
    // Harus berupa angka
    return /^\d+$/.test(params.id)
  }
}

Anda juga dapat memeriksa beberapa data di berkas store misalnya (diisi oleh nuxtServerInit Sebelum tindakan):

export default {
  validate({ params, store }) {
    // Periksa apakah `params.id` adalah kategori yang ada
    return store.state.categories.some(category => category.id === params.id)
  }
}

Anda juga dapat menampilkan galat yang diharapkan atau tidak terduga selama eksekusi fungsi validasi:

export default {
  async validate({ params, store }) {
    // Melempar kesalahan server internal 500 dengan pesan khusus
    throw new Error('Under Construction!')
  }
}

Kontributor

Jumpa kesalahan atau ingin berkontribusi pada dokumentasi ini? Sunting halaman ini di GitHub!

Platinum Sponsors

StoryblokMoovweb Support Us