3 votes

Pourquoi utiliser beforeRouteEnter au lieu de mounted ?

Pourquoi le beforeRouteEnter la garde de navigation existe dans vue-router ? Y a-t-il des cas où beforeRouteEnter sera tiré, mais mounted ne le sera pas ? Si ce n'est pas le cas, dans quel cas préféreriez-vous utiliser beforeRouteEnter a mounted ?

3voto

Giovane Points 613

El mounted est un hook de cycle de vie de n'importe quel composant Vue, il sera toujours déclenché. L'idée de beforeRouteEnter ou tout autre crochet de cycle de vie ajouté par l'utilisateur. vue-router est de vous permettre de contrôler votre application.

Par exemple, disons que vous avez une route appelée bar qui a une logique de validation très spécifique qui ne permet à l'utilisateur d'y entrer que si la route précédente était foo vous pouvez insérer cette logique de validation dans ce crochet au lieu de vérifier chaque changement de route dans la garde globale.

export default {
  name: 'Bar',
  beforeRouteEnter(to, from, next) {
    if (from.name === 'foo') {
      next(); // Calling next allow the route to proceed
    } else {
      next(false); // Don't allow the navigation
      // or
      next({
        name: 'foo',
        query: {
          from: 'bar'
        }
      }); // Redirect to any desired route as navigation made in $router
    }
  }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X