Maison  >  Article  >  interface Web  >  Méthode d'implémentation du composant onglet dans le document Vue

Méthode d'implémentation du composant onglet dans le document Vue

WBOY
WBOYoriginal
2023-06-20 17:08:411956parcourir

Méthode d'implémentation du composant tab dans la documentation Vue

Dans le développement Web, le composant tab est un élément d'interface très courant. Le composant onglet peut améliorer l'expérience utilisateur et permettre aux utilisateurs de parcourir différents contenus sur la même page. Dans Vue.js, nous pouvons utiliser des composants pour implémenter des composants d'onglets. Cet article explique comment utiliser Vue.js pour implémenter un composant d'onglet simple.

Tout d'abord, nous devons définir un composant qui contient le titre et le contenu de l'onglet. Nous pouvons utiliser la syntaxe du modèle de Vue pour définir ce composant. Le composant nécessite un objet de données pour stocker un tableau de titres et de contenus d'onglets, ainsi que l'index de l'onglet actuellement affiché. Nous utilisons également l'attribut calculé pour obtenir le contenu de l'onglet actuellement affiché.

<template>
  <div>
    <div class="tab">
      <ul>
        <li v-for="(tab, index) in tabs" :class="{ active: index === currentTab }" @click="currentTab = index">{{ tab.title }}</li>
      </ul>
    </div>
    <div class="content">{{ currentTabContent }}</div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tabs: [
        { title: 'Tab 1', content: 'Content of tab 1' },
        { title: 'Tab 2', content: 'Content of tab 2' },
        { title: 'Tab 3', content: 'Content of tab 3' }
      ],
      currentTab: 0
    }
  },
  computed: {
    currentTabContent() {
      return this.tabs[this.currentTab].content
    }
  }
}
</script>

<style>
.active {
  color: red;
}
</style>

Ensuite, nous devons utiliser le composant tab dans le composant parent. Dans le composant parent, nous devons utiliser la directive v-for pour boucler le rendu du composant tab, et en même temps définir la directive v-bind pour transmettre les données du composant parent au composant enfant. Enfin, nous devons utiliser l'attribut props pour définir le type de données que le composant tab reçoit.

<template>
  <div>
    <tab v-for="(tab, index) in tabs" :key="index" :title="tab.title" :content="tab.content"></tab>
  </div>
</template>

<script>
import Tab from './Tab.vue'

export default {
  components: {
    Tab
  },
  data() {
    return {
      tabs: [
        { title: 'Tab 1', content: 'Content of tab 1' },
        { title: 'Tab 2', content: 'Content of tab 2' },
        { title: 'Tab 3', content: 'Content of tab 3' }
      ]
    }
  }
}
</script>

Enfin, nous devons également définir le composant tab dans un fichier Tab.vue séparé, comme indiqué ci-dessous :

<template>
  <div>
    <div class="tab">
      <ul>
        <li v-for="(tab, index) in tabs" :class="{ active: index === currentTab }" @click="currentTab = index">{{ title }}</li>
      </ul>
    </div>
    <div class="content">{{ content }}</div>
  </div>
</template>

<script>
export default {
  props: {
    title: {
      type: String,
      required: true
    },
    content: {
      type: String,
      required: true
    }
  },
  data() {
    return {
      currentTab: 0
    }
  }
}
</script>

<style scoped>
.active { color: red }
</style>

Jusqu'à présent, nous avons implémenté un simple composant tab. Lors de son utilisation, il vous suffit de définir le titre et le contenu de la page à onglet dans le composant parent. Ce composant peut être facilement étendu pour prendre en charge davantage d'options de configuration et de logique d'interface utilisateur.

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