前提
- nuxt: ^2.12.2
validate関数
asyncDataメソッドの前に呼ばれる.
公式ドキュメント(日本語)
#ハマったこと
正しいパスなのにページがよみこまれず,エラーページに飛ばされる
test.vue
validate (context : Context) {
if (context.params.test.includes('test')){
return false;
}
}
原因
返り値trueを返していなかったため,常にfalseが返っていた.
ちゃんとドキュメントにはこう書いてあります.
バリデーションメソッドが true を返さないときは Nuxt.js は自動的に 404 エラーページをロードします。
解決策
条件を満たす場合は必ずtrueを返すようにする.
test.vue
validate (context : Context) {
if (context.params.test.includes('test')){
return false;
}
+ return true;
}
所感
Vue初心者の自分は3回くらいこれでハマりました....
ドキュメント読み込むのは大事というのが身にしみました.