Fermer

mars 27, 2024

Un guide complet sur la liaison HTML, la gestion d’événements et l’itération de boucle / Blogs / Perficient

Un guide complet sur la liaison HTML, la gestion d’événements et l’itération de boucle / Blogs / Perficient


Méthodes et fonctions de liaison dans Vue.js

Les méthodes de liaison dans Vue.js connectent les fonctions définies dans l’instance Vue aux événements ou aux directives du modèle, permettant ainsi l’interactivité.

<template>
    <!-- Interpolation -->
    <p>{{ message }}</p>
    <!-- Using v-bind directive -->
    <a v-bind:href="https://blogs.perficient.com/2024/03/27/a-comprehensive-guide-to-binding-html-handling-events-and-iterating-with-loops/url">Learm More</a>
    <!-- Using shorthand : -->
    <a :href="https://blogs.perficient.com/2024/03/27/a-comprehensive-guide-to-binding-html-handling-events-and-iterating-with-loops/url">Read More...</a>
    <button v-on:click="handleClick">Click me!</button>
    <!-- Using shorthand : -->   
    <button @click="performAction">Clicked </button>
    <!-- Use v-text directive to display the message -->
    <p v-text="title"></p>
</template>

<script>
export default {
 name: 'App',
  data() {
    return {
      message: 'Hello, Vue.js!',
      url: 'https://example.com',
      title: 'Hello from v-text directive'
    }
  },
  methods: {
    handleClick() {
      alert('You clicked on handleClick button');
    },
    performAction() {
      alert('You clicked on performAction button');
    }
  }
}
</script>

Lier du HTML aux données Vue.js

Vous pouvez lier dynamiquement des données à des éléments HTML à l’aide des directives Vue.js. Par exemple, vous pouvez afficher la valeur de la propriété de données du message dans un

élément utilisant l’interpolation {{ message }} et définir dynamiquement le attribut href de éléments basés sur la propriété de données URL à l’aide de la directive v-bind ou de son raccourci ‘:.’

Directive « v-texte »

Directive « v-bind »

Gestion des événements dans Vue.js

Vue.js fournit une syntaxe simple pour gérer les interactions utilisateur. Vous écoutez les événements en utilisant des directives telles que v-on : cliquez ou un raccourci @et exécutez les méthodes en réponse. Par exemple, vous déclenchez la méthode handleClick lorsque vous cliquez sur un , affichant un message d’alerte.

Ces fonctionnalités vous permettent de créer sans effort des interfaces utilisateur dynamiques et réactives dans Vue.js, améliorant ainsi l’interactivité et la réactivité de vos applications Web.

Aperçu

Sortir:

Image 12

Itérer avec des boucles dans Vue.js

Vue.js facilite l’itération sur les tableaux et les objets de vos données et le rendu de listes dynamiques d’éléments. Vous pouvez utiliser la directive v-for pour parcourir les données et générer des éléments HTML en fonction de chaque élément du tableau ou de l’objet.

<template>
  <ul>
    <li v-for="item in items">{{ item }}</li>
  </ul>
</template>

<script>
export default {
 name: 'App',
  data() {
    return {
      items: ['Finance', 'Supply Chain', 'Healthcare']
    }
  }
}
</script>

Sortir:

Image 11

Dans cet exemple, nous parcourons le tableau items et restituons un élément

  • pour chaque élément du tableau.

    Manipulation d’objets interactifs

    Ajout et affichage dynamique de propriétés :

    <template>
        <div>
          <h2>Iterating Over an Object in Vue.js</h2>
          <ul>
            <li v-for="(value, key) in user" :key="key">
              {{ key }}: {{ value }}
            </li>
          </ul>
      
          <div>
            <input type="text" v-model="newKey" placeholder="New key">
            <input type="text" v-model="newValue" placeholder="New value">
            <button @click="addProperty">Add Property</button>
          </div>
        </div>
      </template>
      
      <script>
      export default {
        data() {
          return {
            user: {
              name: 'John',
              age: 30,
              email: 'john@example.com'
            },
            newKey: '',
            newValue: ''
          };
        },
        methods: {
          addProperty() {
            if (this.newKey && this.newValue) {
              this.user[this.newKey] = this.newValue;
              this.newKey = '';
              this.newValue="";
            }
          }
        }
      };
      </script>
    • Le modèle affiche les propriétés existantes de l’objet utilisateur et fournit des champs de saisie pour ajouter de nouvelles propriétés.
    • Les propriétés de données user, newKey et newValue sont initialisées.
    • Les propriétés existantes sont rendues à l’aide de v-for.
    • Lorsque l’utilisateur clique sur le bouton « Ajouter une propriété », la méthode addProperty est déclenchée.
    • La méthode vérifie si une nouvelle clé et une nouvelle valeur sont fournies.
    • Si elle est fournie, la nouvelle propriété est ajoutée à l’objet utilisateur et les champs de saisie sont effacés.
    • js met automatiquement à jour l’interface utilisateur pour refléter les modifications apportées à l’objet utilisateur.

    Cette configuration permet aux utilisateurs d’ajouter dynamiquement de nouvelles propriétés à l’objet utilisateur, garantissant ainsi que l’interface utilisateur reste synchronisée avec les données.

    Sortir:

    Image 13

    Image 14

    Image 15

    Rendu conditionnel dans Vue.js

    Vue.js fournit un moyen pratique de restituer conditionnellement des éléments HTML en fonction de la valeur des propriétés de données à l’aide de l’option v-si, v-sinon-si, et v-sinon directives.

    <template>
      <div>
        <p v-if="isLoggedIn">Welcome, {{ username }}!</p>
        <p v-else-if="isPending">Logging in...</p>
        <p v-else>Please log in to continue.</p>
      </div>
    </template>
    
    <script>
    export default {
      name: 'App',
      data() {
        return {
          isLoggedIn: false,
          isPending: false,
          username: ''
        };
      }
    }
    </script>

    Ainsi, lorsque le composant est rendu :

    • Si isLoggedIn est vrai, il affiche un message de bienvenue avec le nom d’utilisateur.
    • Si isPending est vrai, il affiche un message indiquant le processus de connexion en cours.
    • Si ni isLoggedIn ni isPending ne sont vrais, il invite l’utilisateur à se connecter.

    Cette structure permet une présentation dynamique du contenu basée sur l’état de connexion, ce qui est un modèle courant dans les applications Web.

    Sortir:

    Image 2

    Liaison de plusieurs méthodes et fonctions au même élément

    Vous pouvez lier plusieurs méthodes et fonctions au même élément HTML en les enchaînant à l’aide de l’attribut v-on directive ou la @ sténographie.

    <template>
      <div id="app">
        <button @click="incrementCounter">Increment</button>
        <p>Counter: {{ counter }}</p>
      </div>
    </template>
    
    <script>
    export default {
      name: 'App',
      data() {
        return {
          counter: 0
        };
      },
      methods: {
        incrementCounter() {
          this.counter++;
          this.logMessage(); // Call the logMessage method when the button is clicked
        },
        logMessage() {
          console.log('Button clicked!');
        }
      }
    }
    </script>
    

    Sortir:

    Image 4 Image 5

    Dans cet exemple, les méthodes IncreaseCounter et logMessage sont exécutées lorsque le bouton clique.

    Classes de liaison dans Vue.js

    De même, vous pouvez lier dynamiquement des classes CSS à des éléments HTML en fonction des propriétés des données à l’aide de la directive v-bind:class.

    <template>
        <div v-bind:class="{ active: isActive, 'text-bold': isBold }">Dynamic Class Binding</div>
    </template>
    
    <script>
    export default {
        name: 'App',
        data() {
            return {
                isActive: true,
                isBold: false
            }
        }
    }
    </script>

    Sortir:

    Image 6

    Image 7

    Dans cet exemple, la classe active est appliquée si c’est actif est vrai, et la classe text-bold est appliquée si Boule de Glace est vrai.

    Directives supplémentaires :

    modèle en V

    v-model est utilisé pour la liaison de données bidirectionnelle sur les éléments d’entrée du formulaire. Il choisit automatiquement la bonne façon de mettre à jour l’élément en fonction du type d’entrée.

    <template>
       <input type="text" v-model="message">
      <p>{{ message }}</p>
    </template>
    
    <script>
    export default {
        name: 'App',
        data() {
            return {
                  message: ''
            }
        }
    }
    </script>

    Sortir:

    Image 8

    v-show :

    v-show bascule la visibilité d’un élément en fonction d’une valeur de vérité. Contrairement à v-if, il ne supprime pas l’élément du DOM mais active la propriété d’affichage CSS.

    <template>
      <div>
        <p v-show="isVisible">This paragraph is visible</p>
        <button @click="toggleVisibility">Toggle Visibility</button>
      </div>
    </template>
    
    <script>
    export default {
      name: 'App',
      data() {
        return {
          isVisible: true
        };
      },
      methods: {
        toggleVisibility() {
          this.isVisible = !this.isVisible;
        }
      }
    }
    </script>

    Sortir:

    Image 9

    Cliquer sur le bouton fait basculer la valeur de isVisible, ce qui entraîne le masquage du texte s’il était auparavant visible et vice versa.

    Image 10

    Conclusion

    Ce guide présente de manière concise les concepts essentiels de Vue.js pour créer des applications Web dynamiques. Il couvre la liaison de données, la gestion des événements, le bouclage des données, le rendu conditionnel, la liaison dynamique de classes et d’attributs, et introduit des directives clés telles que v-model et v-show. En maîtrisant ces principes fondamentaux, les développeurs peuvent créer efficacement des applications Vue.js interactives et réactives.






  • Source link