You are browsing Nuxt 2 docs. Go to Nuxt 3 docs, or learn more about Nuxt 2 Long Term Support.

Translated page Contents of this page might be outdated.

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 ou Async 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!')
  }
}