validate メソッド
Nuxt では動的なルーティングを行うコンポーネント内でバリデーションメソッドを定義できます。
-
型:
FunctionまたはAsync Function
validate は新しいルートに移動する前に毎回呼び出されます。サーバーサイドでは(Nuxt アプリケーションへの最初のリクエストで)1 度、クライアントサイドでは別のルートに遷移する際に呼び出されます。このメソッドは context オブジェクトを引数として受け取ります。
validate({ params, query, store }) {
return true // params が有効な場合
return false // Nuxt にルートをレンダリングさせるのを止め、エラーページを表示させます
}
async validate({ params, query, store }) {
// 非同期操作
return true // params が有効な場合
return false // Nuxt にルートをレンダリングさせるのを止め、エラーページを表示させます
}
プロミスを返すこともできます:
validate({ params, query, store }) {
return new Promise((resolve) => setTimeout(() => resolve()))
}
Nuxt では動的なルーティングを行うコンポーネント内でバリデーションメソッドを定義できます(以下の例では pages/users/_id.vue です)。
バリデーションメソッドが true を返さない場合 Nuxt は自動的に 404 エラーページをロードします。
export default {
validate({ params }) {
// Must be a number
return /^\d+$/.test(params.id)
}
}
例えばストア 内の一部のデータ(アクションの前に nuxtServerInit で格納されます)を確認することもできます:
export default {
validate({ params, store }) {
// `params.id` が存在しているカテゴリかどうかを確認します
return store.state.categories.some(category => category.id === params.id)
}
}
バリデーション関数を実行中に想定されるエラーや想定外のエラーを投げることもできます:
export default {
async validate({ params, store }) {
// カスタムメッセージと共に 500 internal server error を投げます
throw new Error('Under Construction!')
}
}
このページをGitHubで編集する
更新日 Mon, Feb 28, 2022
Leoš Literák
Trizotti
Clément Ollivier
Sébastien Chopin
Marcello Bachechi
Rodolphe
Thomas Underwood
Shek Evgeniy
felipesuri
Lukasz Formela
Hugo Torzuoli
Sylvain Marroufin
Kareem Dabbeet
tramplay
Daniel Roe
verebelyicsaba
Adam
Nate Butler
Sandra Rodgers
Arpit Patidar
Matthew Kuehn
Steven DUBOIS
Travis Lindsey
syagawa
Maxime
かる
Al Power
Florent Delerue
quanghm
José Manuel Casani Guerra
Unai Mengual
kazuya kawaguchi
Michael Lynch
Tomachi
pooya parsa
Meir Roth
Brett
Adam Miedema
Thomas Bnt
Kazuki Furukawa
Anthony Ruelle
Christophe Carvalho Vilas-Boas
Roman Harmyder