Maison interface Web Questions et réponses frontales Comment configurer la table dans Vue pour qu'elle s'allonge à mesure que le contenu augmente

Comment configurer la table dans Vue pour qu'elle s'allonge à mesure que le contenu augmente

May 24, 2023 pm 12:31 PM

En tant que l'un des frameworks les plus populaires en matière de développement front-end, Vue.js est très approprié pour créer rapidement des applications Web dynamiques et interactives. Parmi eux, le besoin d'afficher les données dans des tableaux est très courant, mais comment rendre les tableaux plus flexibles à mesure que le contenu augmente est également un sujet qui mérite d'être exploré.

Dans Vue.js, nous pouvons utiliser de nombreuses manières différentes pour que le tableau s'allonge à mesure que le contenu augmente, notamment en utilisant des styles dynamiques, en utilisant des propriétés calculées et en écoutant les modifications des données. Ensuite, cet article présentera en détail les scénarios spécifiques de mise en œuvre et d’utilisation de ces méthodes.

1. Utiliser des styles dynamiques

Une façon courante d'agrandir le tableau avec le contenu consiste à utiliser des styles dynamiques. La méthode d'implémentation spécifique consiste à envelopper un div conteneur en dehors de la table, puis à définir la hauteur du div conteneur dans le composant Vue en fonction de la hauteur de la table et des changements de contenu, afin d'obtenir l'effet d'allongement de la table. avec le contenu.

Voici un exemple simple :

<template>
  <div class="table-wrapper">
    <table>
      <thead>
        <tr>
          <th>姓名</th>
          <th>年龄</th>
          <th>性别</th>
        </tr>
      </thead>
      <tbody>
        <tr v-for="(item, index) in list" :key="index">
          <td>{{ item.name }}</td>
          <td>{{ item.age }}</td>
          <td>{{ item.gender }}</td>
        </tr>
      </tbody>
    </table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      list: [
        { name: "张三", age: 20, gender: "男" },
        { name: "李四", age: 22, gender: "女" },
        { name: "王五", age: 18, gender: "男" }
      ]
    };
  },
  mounted() {
    this.computeTableHeight();
  },
  methods: {
    computeTableHeight() {
      const table = document.querySelector(".table-wrapper table");
      const wrapper = document.querySelector(".table-wrapper");
      const height = table.clientHeight;
      wrapper.style.height = `${height}px`;
    }
  }
};
</script>

<style>
.table-wrapper {
  overflow-y: auto;
  max-height: 400px;
}
</style>
Copier après la connexion

Dans l'exemple ci-dessus, nous enveloppons un conteneur .table-wrapper à l'extérieur de la table et définissons la hauteur maximale du conteneur à 400px. Dans la fonction de hook monté du composant Vue, nous calculons la hauteur de la table et définissons la hauteur du conteneur pour que la table s'allonge à mesure que le contenu augmente. .table-wrapper,并且设置了容器的最大高度为 400px。在 Vue 组件的 mounted 钩子函数中,我们通过计算表格的高度并设置容器的高度,来让表格随内容的增加变长。

需要注意的是,采用这种方式需要避免过多的计算,否则可能会降低页面的性能。

二、使用计算属性

另一种让表格随内容变长的方法是使用计算属性。这种方式通常适用于表格数据变化比较频繁的场景,通过动态计算表格的高度,来让表格随内容变长。

下面是一个示例(假设 list 中的数据会动态变化):

<template>
  <div class="table-wrapper" :style="{ height: tableHeight + 'px' }">
    <table>
      <thead>
        <tr>
          <th>姓名</th>
          <th>年龄</th>
          <th>性别</th>
        </tr>
      </thead>
      <tbody>
        <tr v-for="(item, index) in list" :key="index">
          <td>{{ item.name }}</td>
          <td>{{ item.age }}</td>
          <td>{{ item.gender }}</td>
        </tr>
      </tbody>
    </table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      list: [
        { name: "张三", age: 20, gender: "男" },
        { name: "李四", age: 22, gender: "女" },
        { name: "王五", age: 18, gender: "男" }
      ]
    };
  },
  computed: {
    tableHeight() {
      const table = document.querySelector(".table-wrapper table");
      const height = table ? table.clientHeight : 0;
      return height;
    }
  }
};
</script>

<style>
.table-wrapper {
  overflow-y: auto;
  max-height: 400px;
}
</style>
Copier après la connexion

在上面这个示例中,我们使用了计算属性 tableHeight 来动态计算表格的高度,然后在容器 div 的样式中使用 :style="{ height: tableHeight + 'px' }"

Il convient de noter que l'utilisation de cette méthode doit éviter des calculs excessifs, sinon cela pourrait réduire les performances de la page.

2. Utiliser des propriétés calculées

Une autre façon d'allonger le tableau avec le contenu consiste à utiliser des propriétés calculées. Cette méthode convient généralement aux scénarios dans lesquels les données du tableau changent fréquemment. En calculant dynamiquement la hauteur du tableau, celui-ci peut s'allonger avec le contenu.

Ce qui suit est un exemple (en supposant que les données de la liste changeront dynamiquement) :

<template>
  <div class="table-wrapper" :style="{ height: tableHeight + 'px' }">
    <table>
      <thead>
        <tr>
          <th>姓名</th>
          <th>年龄</th>
          <th>性别</th>
        </tr>
      </thead>
      <tbody>
        <tr v-for="(item, index) in list" :key="index">
          <td>{{ item.name }}</td>
          <td>{{ item.age }}</td>
          <td>{{ item.gender }}</td>
        </tr>
      </tbody>
    </table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      list: [
        { name: "张三", age: 20, gender: "男" },
        { name: "李四", age: 22, gender: "女" },
        { name: "王五", age: 18, gender: "男" }
      ]
    };
  },
  computed: {
    tableHeight() {
      const table = document.querySelector(".table-wrapper table");
      const height = table ? table.clientHeight : 0;
      return height;
    }
  },
  watch: {
    list() {
      this.$nextTick(() => {
        this.computeTableHeight();
      });
    }
  },
  mounted() {
    this.computeTableHeight();
  },
  methods: {
    computeTableHeight() {
      const table = document.querySelector(".table-wrapper table");
      const wrapper = document.querySelector(".table-wrapper");
      const height = table.clientHeight;
      wrapper.style.height = `${height}px`;
    }
  }
};
</script>

<style>
.table-wrapper {
  overflow-y: auto;
  max-height: 400px;
}
</style>
Copier après la connexion
Dans l'exemple ci-dessus, nous utilisons la propriété calculée tableHeight pour calculer dynamiquement la hauteur de la table, puis ajoutez-le au conteneur div. Utilisez :style="{ height: tableHeight + 'px' }" pour lier les propriétés calculées dans le style afin d'allonger le tableau avec le contenu.

Il convient de noter que lorsque vous utilisez cette méthode, vous devez vous assurer que la quantité de calcul des attributs calculés est raisonnable pour éviter des calculs excessifs conduisant à une dégradation des performances de la page.

3. Surveiller les modifications des données

La dernière façon d'allonger le tableau avec le contenu est de surveiller les modifications des données. Plus précisément, il surveille les modifications dans le tableau de liste, puis recalcule la hauteur du tableau lorsque les données changent, de sorte que le tableau s'allonge à mesure que le contenu augmente. 🎜🎜Voici un exemple : 🎜rrreee🎜Dans cet exemple, nous écoutons les changements dans le tableau de liste, puis recalculons la hauteur de la table lorsque les données changent et définissons la hauteur du conteneur pour obtenir l'effet d'agrandissement de la table. plus longtemps avec le contenu. 🎜🎜L'avantage de cette méthode est qu'elle est relativement simple et ne nécessite pas trop de calculs. Cependant, il faut aussi considérer que lorsque la quantité de données est trop importante, cela aura un certain impact sur les performances. 🎜🎜Pour résumer, voici trois façons d'allonger la table à mesure que le contenu augmente. Quelle méthode doit être choisie en fonction de la situation et des besoins réels. Quelle que soit la méthode utilisée, le but est de rendre la page plus flexible, plus facile à utiliser, plus belle et plus efficace. 🎜

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

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois 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)

Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires? Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires? Mar 19, 2025 pm 03:58 PM

L'article traite de l'utilisation Effecte dans React, un crochet pour gérer les effets secondaires comme la récupération des données et la manipulation DOM dans les composants fonctionnels. Il explique l'utilisation, les effets secondaires courants et le nettoyage pour éviter des problèmes comme les fuites de mémoire.

Comment fonctionne l'algorithme de réconciliation React? Comment fonctionne l'algorithme de réconciliation React? Mar 18, 2025 pm 01:58 PM

L'article explique l'algorithme de réconciliation de React, qui met à jour efficacement le DOM en comparant les arbres DOM virtuels. Il traite des avantages de la performance, des techniques d'optimisation et des impacts sur l'expérience utilisateur. Compte de charge: 159

Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable? Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable? Mar 18, 2025 pm 01:44 PM

Les fonctions d'ordre supérieur dans JavaScript améliorent la concision du code, la réutilisabilité, la modularité et les performances par abstraction, modèles communs et techniques d'optimisation.

Comment fonctionne le currying en JavaScript et quels sont ses avantages? Comment fonctionne le currying en JavaScript et quels sont ses avantages? Mar 18, 2025 pm 01:45 PM

L'article traite du curry dans JavaScript, une technique transformant les fonctions mulguments en séquences de fonctions à argument unique. Il explore la mise en œuvre du currying, des avantages tels que des applications partielles et des utilisations pratiques, améliorant le code

Qu'est-ce que UseContext? Comment l'utilisez-vous pour partager l'état entre les composants? Qu'est-ce que UseContext? Comment l'utilisez-vous pour partager l'état entre les composants? Mar 19, 2025 pm 03:59 PM

L'article explique UseContext dans React, qui simplifie la gestion de l'État en évitant le forage des accessoires. Il traite des avantages tels que les améliorations centralisées de l'État et des performances grâce à des redevances réduites.

Comment connectez-vous les composants React au magasin Redux à l'aide de Connect ()? Comment connectez-vous les composants React au magasin Redux à l'aide de Connect ()? Mar 21, 2025 pm 06:23 PM

L'article discute de la connexion des composants React à Redux Store à l'aide de Connect (), expliquant MapStateToproprop, MapDispatchToprops et des impacts de performances.

Comment empêchez-vous le comportement par défaut dans les gestionnaires d'événements? Comment empêchez-vous le comportement par défaut dans les gestionnaires d'événements? Mar 19, 2025 pm 04:10 PM

L'article discute de la prévention des comportements par défaut dans les gestionnaires d'événements à l'aide de la méthode empêchée dedEfault (), de ses avantages tels que une expérience utilisateur améliorée et des problèmes potentiels tels que les problèmes d'accessibilité.

Quels sont les avantages et les inconvénients des composants contrôlés et incontrôlés? Quels sont les avantages et les inconvénients des composants contrôlés et incontrôlés? Mar 19, 2025 pm 04:16 PM

L'article traite des avantages et des inconvénients des composants contrôlés et incontrôlés dans la réaction, en se concentrant sur des aspects tels que la prévisibilité, la performance et les cas d'utilisation. Il conseille les facteurs à considérer lors du choix entre eux.

See all articles