Método de Validação
A Nuxt permite-nos definir um método de validação dentro do nosso componente de rota dinâmica.
-
Tipo:
Function
ouAsync Function
A validate
é chamada sempre antes de navegar para uma nova rota. Será chamada uma vez do lado do servidor (na primeira requisição à aplicação de Nuxt) e do lado do cliente ao navegar para outras rotas. Este método recebe o objeto context
como argumento:
validate({ params, query, store }) {
return true // se os parâmetros forem validos
return false // impedirá a Nuxt de desenhar a rota e exibirá a página de erro
}
async validate({ params, query, store }) {
// aguardar as opções
return true // se os parâmetros forem validos
return false // impedirá a Nuxt de desenhar a rota e exibirá a página de erro
}
Também podemos retornar promessas:
validate({ params, query, store }) {
return new Promise((resolve) => setTimeout(() => resolve()))
}
A Nuxt permite-nos definir um método de validação dentro do nosso componente de rota dinâmica (neste exemplo: pages/users/_id.vue
).
Se o método validate
não retornar true
, a Nuxt carregará automaticamente a página de erro 404:
export default {
validate({ params }) {
// Tem de ser um número
return /^\d+$/.test(params.id)
}
}
Também podemos verificar algum dado no nosso armazém de estado , por exemplo (preenchido pela nuxtServerInit
antes da ação):
export default {
validate({ params, store }) {
// Verificar se `params.id` é uma categoria existente
return store.state.categories.some(category => category.id === params.id)
}
}
Também podemos lançar erros esperados ou inesperados durante a execução da função validate
:
export default {
async validate({ params, store }) {
// Lançar um erro interno do servidor 500
// com uma mensagem personalizada
throw new Error('Under Construction!')
}
}