O método validate
O Nuxt permite você definir um método validador dentro de um componente de rota dinâmica.
-
Tipo:
FunctionouAsync Function
O validate é chamado toda vez antes de navegar para uma nova rota. Ele será chamado no lado do servidor uma vez (na primeira requisição para aplicação Nuxt) e no lado do cliente quando estiver navegando para rotas além. Este método recebe objeto de contexto como um argumento.
validate({ params, query, store }) {
return true // se os parâmetros forem validos
return false // impedirá o Nuxt de renderizar a rota e mostrará a página de erro
}
async validate({ params, query, store }) {
// espere as operações
return true // se os parâmetros forem validos
return false // impedirá o Nuxt de renderizar a rota e mostrará a página de erro
}
Você pode também retornar promessas:
validate({ params, query, store }) {
return new Promise((resolve) => setTimeout(() => resolve()))
}
O Nuxt permite você definir um método validador dentro do seu componente de rota dinâmica (Neste exemplo: pages/users/_id.vue).
Se o método validate não retornar true, o Nuxt carregará automaticamente a página de erro 404.
export default {
validate({ params }) {
// Deve ser um número
return /^\d+$/.test(params.id)
}
}
Você pode também verificar alguns dados dentro da sua memória por exemplo (preenchido pelo nuxtServerInit antes da ação):
export default {
validate({ params, store }) {
// Verifica se `params.id` é uma categoria existente
return store.state.categories.some(category => category.id === params.id)
}
}
Você pode também lançar erros esperados ou inesperados durante a execução da função validate:
export default {
async validate({ params, store }) {
// Lança um erro de código 500, erro do servidor interno com mensagem personalizada
throw new Error('Under Construction!')
}
}
Clément Ollivier
Daniel Roe
Alex Hirzel
Ajeet Chaulagain
René Eschke
Sébastien Chopin
Nico Devs
Muhammad
Nazaré da Piedade
Naoki Hamada
Tom
Yann Aufray
Anthony Chu
Nuzhat Minhaz
Lucas Portet
Richard Schloss
Xanzhu
bpy
Antony Konstantinidis
Hibariya
Jose Seabra
Eze
Florian LEFEBVRE
Lucas
Julien SEIXAS
Hugo
Sylvain Marroufin
Spencer Cooley
Piotr Zatorski
Vladimir Semenov
Harry Allen
kazuya kawaguchi
Unai Mengual
Hyunseung Lee
Alexandre Chopin
pooya parsa
Nick Medrano
Mosaab Emam
Iljs Путлер Капут
Heitor Ramon Ribeiro
Nero
Yoon Han
Ikko Ashimine
FamCodings
Ayouli
F. Hinkelmann
felipesuri
Christophe Carvalho Vilas-Boas
Leoš Literák
Trizotti
Marcello Bachechi
Rodolphe
Thomas Underwood
Shek Evgeniy
Lukasz Formela
Hugo Torzuoli