Maison  >  Article  >  interface Web  >  Explication détaillée de la façon dont vue cache un bouton dans la liste

Explication détaillée de la façon dont vue cache un bouton dans la liste

PHPz
PHPzoriginal
2023-04-12 09:22:232063parcourir

Avec le développement continu et la popularité de Vue, de plus en plus de développeurs front-end rejoignent les rangs de Vue. Vue est un framework de développement front-end très puissant et facile à utiliser. Sa facilité d'apprentissage et sa flexibilité en font l'un des choix préférés des développeurs. Cependant, vous rencontrerez des problèmes difficiles au cours du processus de développement, comme cacher un bouton dans une liste. Alors, comment utiliser Vue pour implémenter cette fonction ?

Tout d’abord, nous devons comprendre un concept de base : le rendu conditionnel. Le rendu conditionnel est une fonctionnalité très importante dans Vue. Cela nous permet de décider s'il faut restituer un composant ou un élément en fonction de conditions spécifiques. Il existe de nombreuses façons d'effectuer un rendu conditionnel dans Vue, par exemple en utilisant des directives telles que v-if, v-else-if et v-else.

Ensuite, nous montrerons comment utiliser la directive v-if pour masquer un bouton dans la liste. Supposons que nous ayons un composant List, List, qui contient un composant Button, Button. Nous devons décider s'il faut afficher ce bouton en fonction de conditions spécifiques.

Tout d'abord, dans le composant List, nous devons déclarer une variable pour enregistrer l'état indiquant si le bouton doit être affiché. Nous pouvons utiliser l'attribut data pour définir une variable booléenne isButtonVisible.

<template>
  <div>
    <ul>
      <li v-for="item in list" :key="item.id">
        <span>{{ item.name }}</span>
        <button v-if="isButtonVisible">button</button>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      isButtonVisible: false,
      list: [
        { id: 1, name: "apple" },
        { id: 2, name: "banana" },
        { id: 3, name: "orange" },
      ],
    };
  },
};
</script>

Dans le code ci-dessus, nous définissons une liste qui contient les noms de trois fruits. Nous définissons également une variable isButtonVisible avec une valeur initiale false. Le composant bouton Button ne sera rendu que lorsque la valeur de isButtonVisible est vraie.

Maintenant, la question se pose : lorsque nous devons masquer un bouton dans la liste, que devons-nous faire ? C'est en fait très simple, il vous suffit de modifier la valeur de isButtonVisible lorsque vous cliquez sur le bouton.

Dans le composant Button, nous pouvons définir une méthode handleClick, qui sera déclenchée lorsque l'on clique sur le bouton. Dans cette méthode, nous pouvons modifier la valeur isButtonVisible de l'élément correspondant en fonction de la valeur d'index du bouton.

<template>
  <button @click="handleClick">button</button>
</template>

<script>
export default {
  props: {
    index: {
      type: Number,
      required: true,
    },
  },
  methods: {
    handleClick() {
      this.$emit("hide-button", this.index);
    },
  },
};
</script>

Dans le code ci-dessus, nous avons défini un index d'attribut props pour enregistrer la valeur d'index de l'élément de liste où se trouve le bouton actuel. Lorsque vous cliquez sur le bouton, l'événement hide-button est transmis via this.$emit et porte la valeur d'index du bouton actuel pour traitement dans le composant List.

Enfin, dans le composant List, nous devons ajouter un écouteur d'événement pour écouter l'événement hide-button. Lorsque l'événement est déclenché, nous pouvons modifier la valeur isButtonVisible correspondante en fonction de la valeur d'index transmise.

<template>
  <div>
    <ul>
      <li v-for="(item, index) in list" :key="item.id">
        <span>{{ item.name }}</span>
        <button v-if="isButtonVisible">button</button>
        <button-logic :index="index" @hide-button="hideButton"></button-logic>
      </li>
    </ul>
  </div>
</template>

<script>
import ButtonLogic from "./ButtonLogic.vue";

export default {
  data() {
    return {
      isButtonVisible: false,
      list: [
        { id: 1, name: "apple" },
        { id: 2, name: "banana" },
        { id: 3, name: "orange" },
      ],
    };
  },
  components: {
    ButtonLogic,
  },
  methods: {
    hideButton(index) {
      this.$set(this.list[index], "isButtonVisible", false);
    },
  },
};
</script>

Dans le code ci-dessus, nous utilisons un composant appelé ButtonLogic pour restituer le bouton. Ce composant reçoit un index d'attribut props, qui représente la valeur d'index du bouton actuel.

Nous définissons une méthode nommée hideButton pour gérer l'événement hide-button. Cette méthode reçoit un paramètre index, qui représente la valeur d'index du bouton actuel. Dans cette méthode, nous utilisons la méthode $set fournie par Vue pour modifier la valeur isButtonVisible de l'élément correspondant en false.

Enfin, utilisez le composant ButtonLogic dans le composant List et masquez un bouton dans la liste via l'écouteur d'événement hideButton.

Résumé

Utilisez Vue pour masquer un bouton dans la liste, ce qui peut être réalisé grâce au rendu conditionnel. Nous pouvons définir une variable pour enregistrer l'état indiquant si le bouton doit être affiché et décider s'il faut restituer l'élément dans des conditions spécifiques. Lorsque nous devons masquer un bouton, nous pouvons le faire en modifiant la valeur variable de l'élément correspondant.

Cet article montre comment utiliser l'instruction v-if pour implémenter la fonction de masquage des boutons. Le processus d'implémentation spécifique est également très simple. Cependant, dans le processus de développement actuel, il existe de nombreuses autres façons d’obtenir le même effet. Il est donc nécessaire de choisir la solution la plus appropriée en fonction des besoins spécifiques de l’entreprise et des scénarios de développement.

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:
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