Maison > interface Web > Voir.js > le corps du texte

Comment implémenter les fonctions de tri de table et de masquage de colonnes dans les documents Vue

王林
Libérer: 2023-06-20 18:50:19
original
1724 Les gens l'ont consulté

Vue est un framework JavaScript populaire largement utilisé pour développer des projets front-end. Parmi eux, la documentation de Vue fournit de nombreuses fonctions utiles et exemples de code, notamment le tri des tables et le masquage des colonnes. Si vous développez une application de formulaires à l'aide de Vue, ces fonctionnalités peuvent considérablement améliorer votre expérience utilisateur et vos fonctionnalités.

Cet article présentera la méthode d'implémentation des fonctions de tri de tableaux et de masquage de colonnes dans les documents Vue. Nous discuterons de quelques concepts de base sur ce sujet et fournirons un exemple de code.

1. Tri des tables

La documentation de Vue contient des exemples de code pour implémenter le tri des tables. Il existe trois concepts clés pour implémenter le tri des tables dans Vue : les données, les propriétés calculées et les fonctions de tri.

  1. data

Comme le montre le code suivant, nous avons besoin d'un objet de données dans lequel les données de la table sont enregistrées.

data: {
  tableData: [
    { name: 'John', age: 28, score: 85 },
    { name: 'Jane', age: 24, score: 90 },
    { name: 'Bob', age: 32, score: 76 },
    { name: 'Barbara', age: 29, score: 92 },
  ],
  sortKey: '', //现在排序的关键字
  reverse: false //排序方式
}
Copier après la connexion
  1. Propriétés calculées

Ensuite, nous devons utiliser des propriétés calculées pour trier en fonction des données existantes. Les propriétés calculées sont un concept important dans Vue qui vous permet de mettre à jour automatiquement le DOM lorsque les données changent.

computed: {
  sortedTableData() {
    return this.tableData.sort((a, b) => {
      let modifier = 1;
      if (this.reverse) modifier = -1;
      if (a[this.sortKey] < b[this.sortKey]) return -1 * modifier;
      if (a[this.sortKey] > b[this.sortKey]) return 1 * modifier;
      return 0;
    });
  }
}
Copier après la connexion
  1. Fonction de tri

Enfin, nous devons écrire une fonction pour gérer l'événement click de l'en-tête du tableau. Lorsque l'utilisateur clique sur l'en-tête, nous appellerons cette fonction en passant le nom de l'en-tête en paramètre. La fonction de tri mettra à jour les propriétés sortKey et inverse en fonction des valeurs transmises, déclenchant ainsi une mise à jour de la propriété calculée.

methods: {
  sort(key) {
    this.sortKey = key;
    this.reverse = !this.reverse;
  }
}
Copier après la connexion

Le code HTML final est le suivant :

<table>
  <thead>
    <tr>
      <th @click="sort('name')">Name</th>
      <th @click="sort('age')">Age</th>
      <th @click="sort('score')">Score</th>
    </tr>
  </thead>
  <tbody>
    <tr v-for="item in sortedTableData" :key="item.name">
      <td>{{ item.name }}</td>
      <td>{{ item.age }}</td>
      <td>{{ item.score }}</td>
    </tr>
  </tbody>
</table>
Copier après la connexion

2. Masquage des colonnes

Une autre fonctionnalité utile de la documentation Vue est le masquage des colonnes. Si votre tableau contient de nombreuses colonnes, vous souhaiterez peut-être autoriser les utilisateurs à contrôler quelles colonnes sont visibles.

Il existe deux concepts clés dans la mise en œuvre du masquage de colonnes : les données et les propriétés calculées.

  1. data

Nous avons besoin d'un objet de données qui contient le statut de la colonne sélectionnée.

data: {
  tableData: [
    { name: 'John', age: 28, score: 85 },
    { name: 'Jane', age: 24, score: 90 },
    { name: 'Bob', age: 32, score: 76 },
    { name: 'Barbara', age: 29, score: 92 },
  ],
  selectedColumns: [] //已选中的列
}
Copier après la connexion
  1. Propriété calculée

Nous avons besoin d'une propriété calculée pour masquer ou afficher chaque colonne. La propriété calculée renvoie un tableau de noms de colonnes sélectionnées. Utilisez la directive v-for pour créer dynamiquement les balises.

computed: {
  visibleColumns() {
    return ['name', 'age', 'score'].filter(column => !this.selectedColumns.includes(column));
  }
}
Copier après la connexion

Le code HTML final est le suivant :

<table>
  <thead>
    <tr>
      <th v-for="column in visibleColumns" :key="column">{{ column }}</th>
    </tr>
  </thead>
  <tbody>
    <tr v-for="item in tableData" :key="item.name">
      <td v-if="!selectedColumns.includes('name')">{{ item.name }}</td>
      <td v-if="!selectedColumns.includes('age')">{{ item.age }}</td>
      <td v-if="!selectedColumns.includes('score')">{{ item.score }}</td>
    </tr>
  </tbody>
</table>
Copier après la connexion

3 Résumé

Ce qui précède explique comment implémenter les fonctions de tri de tableau et de masquage de colonnes. dans le document Vue introduit. Ces fonctionnalités offrent une meilleure expérience interactive à vos utilisateurs et augmentent les fonctionnalités de votre application. Lors de la mise en œuvre de ces fonctionnalités, veillez à utiliser les propriétés et méthodes calculées pour mettre à jour les données et le DOM. Cela garantira que votre application reste synchronisée et réactive à tout moment.

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal