Maison interface Web js tutoriel Utilisez la fonction de hook beforeEnter (code ci-joint)

Utilisez la fonction de hook beforeEnter (code ci-joint)

Jun 06, 2018 am 11:34 AM
vue vue钩子函数 钩子函数

Cette fois, je vais vous présenter l'utilisation de la fonction hook beforeEnter (avec code) et quelles sont les précautions d'utilisation de la fonction hook beforeEnter (ce qui suit est un cas pratique, jetons un coup d'œil.

Pourquoi créer votre propre fonction de hook beforeEnter ?

Regardez le scénario problématique : il y a une page de liste de mots dans le projet, et chaque cellule indiquera si le mot a été maîtrisé. Cliquez sur la cellule pour accéder à la page de détails. Vous pouvez apprendre le mot et indiquer s'il est maîtrisé, et vous pouvez également apprendre d'autres mots en cliquant sur les boutons avant et arrière dans la page de détails. , la liste de mots doit afficher le dernier statut de tous les mots maîtrisés par l'utilisateur. 🎜>

La relation de la page finale est la suivante :

wordListPage ——> une série de mots, quittez) ——> wordListPage (actualiser la liste de mots)

Pour le scénario ci-dessus, il n'est pas possible d'utiliser les fonctions de cycle de vie de Vue, car les fonctions de cycle de vie de Vue telles que : beforeCreate, créé, beforeMounted, monté, etc. ne sera appelé que lorsque le composant est initialisé, mais lorsque le composant (instance de VM) provient du cache (comme $route.go(-1), keep-alive), le cycle de vie la fonction ne sera plus appelée. Par conséquent, lorsque je reviens à la page de liste à partir de la page de détails du mot, je ne trouve pas de période appropriée pour lancer la mise à jour des données, donc le scénario ci-dessus ne peut pas être bien géré

Bien sûr, le scénario ci-dessus est relativement rare, mais la fonction de hook beforeEnter existe. Il est toujours nécessaire de construire la fonction de hook beforeEnter

Points de connaissance dépendants :

routage : vue-router
  1. Mixin : mixin
  2. Bus événementiel central
  3. 1 .Créer un bus d'événements central

Pour le bus d'événements central, une compréhension simple consiste à créer une instance publique de Vue (EventBus) et à utiliser la même instance dans différents endroits pour déclencher le message EventBus.$emit('demo'), utilisez une instance publique de Vue pour écouter EventBus.$on('demo',() => {}) où vous souhaitez écouter l'événement. plus clairement, il existe un tel composant public, et ce sera différent. Il envoie des messages et les surveille à différents endroits. Par conséquent, il implémente lui-même l'envoi et la réception de messages, nous l'appelons donc le bus d'événements central. Le code est le suivant : libs/EventBus.js

Voyons comment l'utiliser

2. Fonction de hook de routage avant que chaque
import Vue from 'vue';
const EventBus = new Vue();
export default EventBus;
Copier après la connexion

ne soit utilisé. la fonction hook beforeEach pour déclencher la réponse lors du changement de routage L'événement beforeEnter du composant.

Le code est le suivant : router/index.js

3 Créez un objet mix-in global

import EventBus from '@/libs/EventBus';
router.beforeEach((to, from, next) => {
  //如:EventBus.$emit('homeBeforeEnter');
  EventBus.$emit(to.name + 'BeforeEnter'); 
  if (to.matched.some(route => route.meta.isAuth)) {
    ...
    next()
  } else {
    next()
  }
  
})
Copier après la connexion
Ici, nous implémentons. la surveillance et les composants des événements de changement de route Déclenchement de la fonction de hook d'instance avantEnter.

libs/beforeEnterMixin.js

Pour cet objet mixin, il est possible d'utiliser un mixin global ou local.

Mix-in global : main.js

import EventBus from './EventBus';
export default {
  beforeCreate() {
    //获取当前路由名称,与前面使用to.name对应
    let vmName = this.$route.name;
    if (!vmName) {
      return;
    }
    // 当组件初始化时,先触发一次,后续将不再调用
    this.$options.beforeEnter();
    const beforeEnter = vmName + 'BeforeEnter';
    //监听路由切换时触发的...BeforeEnter事件
    //通过this.$options获取到实例中的beforeEnter钩子函数
    //监听到...BeforeEnter事件后,触发钩子函数beforeEnter调用
    EventBus.$on(beforeEnter, this.$options.beforeEnter);
  },
  //该函数在这里只作为占位,没有实际意义
  beforeEnter() {}
};
Copier après la connexion

4. Utiliser dans des composants

import beforeEnterMixin from '@/libs/beforeEnterMixin';
Vue.mixin(beforeEnterMixin);
Copier après la connexion
tels que : home.vue

À ce stade, notre beforeEnter est terminé. Vous pouvez faire une démo pour le tester vous-même. Actuellement, je l'utilise dans de nombreux projets.

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

<template>
  <p>
    首页
  </p>
</template>
<script>
export default {
  beforeEnter() {
    console.log('首页 beforeEnter...');
  },
  created() {
    console.log('首页 created...')
  }
}
</script>
Copier après la connexion
Lecture recommandée :

Comment utiliser vue+webpack pour effectuer un chargement asynchrone

opération de routage dynamique du routeur vue sous- itinéraire

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Grow A Garden - Guide de mutation complet
4 Il y a quelques semaines By DDD
<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
<🎜> Obscur: Expedition 33 - Comment obtenir des catalyseurs de chrome parfaits
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1677
14
Tutoriel PHP
1278
29
Tutoriel C#
1257
24
Comment utiliser Bootstrap en Vue Comment utiliser Bootstrap en Vue Apr 07, 2025 pm 11:33 PM

L'utilisation de bootstrap dans vue.js est divisée en cinq étapes: installer bootstrap. Importer un bootstrap dans main.js. Utilisez le composant bootstrap directement dans le modèle. Facultatif: style personnalisé. Facultatif: utilisez des plug-ins.

Comment ajouter des fonctions aux boutons pour Vue Comment ajouter des fonctions aux boutons pour Vue Apr 08, 2025 am 08:51 AM

Vous pouvez ajouter une fonction au bouton VUE en liant le bouton dans le modèle HTML à une méthode. Définissez la logique de la fonction de méthode et d'écriture dans l'instance Vue.

Comment utiliser Watch in Vue Comment utiliser Watch in Vue Apr 07, 2025 pm 11:36 PM

L'option Watch dans Vue.js permet aux développeurs d'écouter des modifications de données spécifiques. Lorsque les données changent, regardez déclenche une fonction de rappel pour effectuer des vues de mise à jour ou d'autres tâches. Ses options de configuration incluent immédiatement, qui spécifie s'il faut exécuter un rappel immédiatement, et profond, ce qui spécifie s'il faut écouter récursivement les modifications des objets ou des tableaux.

Comment revenir à la page précédente par Vue Comment revenir à la page précédente par Vue Apr 07, 2025 pm 11:30 PM

Vue.js dispose de quatre méthodes pour revenir à la page précédente: $ router.go (-1) $ router.back () utilise & lt; router-link to = & quot; / & quot; Composant Window.History.back (), et la sélection de la méthode dépend de la scène.

Que signifie le développement de plusieurs pages Vue? Que signifie le développement de plusieurs pages Vue? Apr 07, 2025 pm 11:57 PM

Le développement multi-pages VUE est un moyen de créer des applications à l'aide du cadre Vue.js, où l'application est divisée en pages distinctes: Maintenance du code: La division de l'application en plusieurs pages peut rendre le code plus facile à gérer et à maintenir. Modularité: chaque page peut être utilisée comme module séparé pour une réutilisation et un remplacement faciles. Routage simple: la navigation entre les pages peut être gérée par une configuration de routage simple. Optimisation du référencement: chaque page a sa propre URL, ce qui aide le référencement.

React vs. Vue: Quel framework utilise Netflix? React vs. Vue: Quel framework utilise Netflix? Apr 14, 2025 am 12:19 AM

NetflixUSESACustomFrameworkCalled "gibbon" builtonReact, notreactorVueDirectly.1) teamExperience: ChoOsBasedOnFamiliarity.

Comment utiliser Vue Traversal Comment utiliser Vue Traversal Apr 07, 2025 pm 11:48 PM

Il existe trois méthodes courantes pour que Vue.js traverse les tableaux et les objets: la directive V-FOR est utilisée pour traverser chaque élément et les modèles de rendu; La directive V-Bind peut être utilisée avec V-FOR pour définir dynamiquement les valeurs d'attribut pour chaque élément; et la méthode .map peut convertir les éléments du tableau en nouveaux tableaux.

Comment référencer le fichier JS avec Vue.js Comment référencer le fichier JS avec Vue.js Apr 07, 2025 pm 11:27 PM

Il existe trois façons de se référer aux fichiers JS dans Vue.js: spécifiez directement le chemin à l'aide du & lt; script & gt; étiqueter;; importation dynamique à l'aide du crochet de cycle de vie monté (); et l'importation via la bibliothèque de gestion de l'État Vuex.

See all articles