Maison > interface Web > Questions et réponses frontales > Comment afficher le numéro de série de la table dans vue

Comment afficher le numéro de série de la table dans vue

WBOY
Libérer: 2023-05-11 13:01:37
original
3325 Les gens l'ont consulté

Vue est un framework JavaScript très populaire et largement utilisé pour développer des applications Web interactives. Dans Vue, nous utilisons généralement des tableaux pour afficher les données. Cependant, nous devons parfois afficher le numéro de série du tableau pour permettre aux utilisateurs de mieux comprendre et analyser les données du tableau. Dans cet article, nous présenterons comment utiliser Vue pour afficher le numéro de série de la table.

1. Définir les données du tableau dans Vue

Supposons que nous ayons le tableau suivant, qui contient les noms, les âges et les notes des élèves :

<template>
  <table>
    <thead>
      <tr>
        <th>姓名</th>
        <th>年龄</th>
        <th>成绩</th>
      </tr>
    </thead>
    <tbody>
      <tr v-for="(student, index) in students" :key="index">
        <td>{{ student.name }}</td>
        <td>{{ student.age }}</td>
        <td>{{ student.score }}</td>
      </tr>
    </tbody>
  </table>
</template>

<script>
export default {
  data() {
    return {
      students: [
        { name: '小明', age: 18, score: 90 },
        { name: '小红', age: 20, score: 80 },
        { name: '小刚', age: 19, score: 85 },
        { name: '小李', age: 21, score: 88 },
      ],
    };
  },
};
</script>
Copier après la connexion

Les données de ce tableau sont relativement simples, nous utilisons v-for< Le La directive /code> parcourt le tableau <code>étudiants et affiche les informations de chaque étudiant dans un tableau. v-for指令来遍历students数组,并在表格中显示每个学生的信息。

二、在Vue中添加表格序号

为了在表格中显示序号,我们需要额外添加一个列,表示当前行在表格中的序号。我们可以使用JavaScript中的map()方法为每个学生添加一个序号属性,然后在表格中将该属性进行显示。

<template>
  <table>
    <thead>
      <tr>
        <th>序号</th>
        <th>姓名</th>
        <th>年龄</th>
        <th>成绩</th>
      </tr>
    </thead>
    <tbody>
      <tr v-for="(student, index) in studentsWithIndex" :key="index">
        <td>{{ student.index }}</td>
        <td>{{ student.name }}</td>
        <td>{{ student.age }}</td>
        <td>{{ student.score }}</td>
      </tr>
    </tbody>
  </table>
</template>

<script>
export default {
  data() {
    return {
      students: [
        { name: '小明', age: 18, score: 90 },
        { name: '小红', age: 20, score: 80 },
        { name: '小刚', age: 19, score: 85 },
        { name: '小李', age: 21, score: 88 },
      ],
    };
  },
  computed: {
    studentsWithIndex() {
      return this.students.map((item, index) => ({
        index: index + 1,
        ...item,
      }));
    },
  },
};
</script>
Copier après la connexion

在这里,我们在Vue的计算属性(computed)中创建了一个新的数组studentsWithIndex,这个数组是在原有的students数组上进行转化得到的,通过map()方法遍历students数组,为每个学生添加一个index属性,并将index属性值设置为当前遍历的索引值加1。同时,我们还使用了ES6的对象解构语法(...item)将原有的学生数据与新添加的index属性进行合并,最终返回一个新的对象数组。在表格中,我们将显示新添加的index属性,即学生在表格中的序号。

三、在Vue中设置表格排序

在某些情况下,我们需要根据某个属性对表格数据进行排序。我们可以使用JavaScript的sort()方法对表格数据进行排序,并实现动态更新表格中的序号。

<template>
  <table>
    <thead>
      <tr>
        <th>序号</th>
        <th>姓名</th>
        <th>年龄</th>
        <th @click="sortByScore">成绩</th>
      </tr>
    </thead>
    <tbody>
      <tr v-for="(student, index) in studentsWithIndex" :key="index">
        <td>{{ student.index }}</td>
        <td>{{ student.name }}</td>
        <td>{{ student.age }}</td>
        <td>{{ student.score }}</td>
      </tr>
    </tbody>
  </table>
</template>

<script>
export default {
  data() {
    return {
      students: [
        { name: '小明', age: 18, score: 90 },
        { name: '小红', age: 20, score: 80 },
        { name: '小刚', age: 19, score: 85 },
        { name: '小李', age: 21, score: 88 },
      ],
    };
  },
  computed: {
    studentsWithIndex() {
      return this.students.map((item, index) => ({
        index: index + 1,
        ...item,
      }));
    },
  },
  methods: {
    sortByScore() {
      if (this.sortDirection === 'asc') {
        this.students.sort((a, b) => b.score - a.score);
        this.sortDirection = 'desc';
      } else {
        this.students.sort((a, b) => a.score - b.score);
        this.sortDirection = 'asc';
      }
      this.$forceUpdate();
    },
  },
  mounted() {
    this.sortDirection = 'asc'; // 默认升序排列
  },
};
</script>
Copier après la connexion

在这里,我们在Vue中添加了一个新的表头,即成绩列,使用@click监听该列的点击事件。同时,我们在Vue的方法中新增了一个sortByScore方法,用于对表格数据进行排序。当用户点击表头时,我们使用sort()方法对students数组进行排序,并更新sortDirection属性的值,表示当前表格的排序方式(升序或降序)。注意,我们在sortByScore方法中使用了$forceUpdate()

2. Ajoutez le numéro de série du tableau dans Vue

Afin d'afficher le numéro de série dans le tableau, nous devons ajouter une colonne supplémentaire pour représenter le numéro de série de la ligne actuelle dans le tableau. Nous pouvons utiliser la méthode map() en JavaScript pour ajouter un attribut numéro de série à chaque élève, puis afficher cet attribut dans le tableau. 🎜rrreee🎜Ici, nous avons créé un nouveau tableau studentsWithIndex dans la propriété calculée de Vue (calculé). Ce tableau est converti à partir du tableau students d'origine, parcourez les students. via la méthode map(), ajoutez un attribut index à chaque élève et définissez le index >La valeur de l'attribut est défini sur la valeur d'index actuellement parcourue plus 1. Dans le même temps, nous avons également utilisé la syntaxe de déconstruction d'objet ES6 (...item) pour fusionner les données originales de l'étudiant avec l'attribut index nouvellement ajouté, et avons finalement renvoyé un nouvelle gamme d'objets. Dans le tableau, nous afficherons l'attribut index nouvellement ajouté, qui est le numéro de série de l'étudiant dans le tableau. 🎜🎜3. Définir le tri des tableaux dans Vue🎜🎜Dans certains cas, nous devons trier les données du tableau en fonction d'un certain attribut. Nous pouvons utiliser la méthode sort() de JavaScript pour trier les données du tableau et mettre à jour dynamiquement les numéros de série dans le tableau. 🎜rrreee🎜Ici, nous avons ajouté un nouvel en-tête dans Vue, à savoir la colonne score, et utilisé @click pour écouter l'événement click de cette colonne. Dans le même temps, nous avons ajouté une nouvelle méthode sortByScore à la méthode Vue pour trier les données des tables. Lorsque l'utilisateur clique sur l'en-tête du tableau, nous utilisons la méthode sort() pour trier le tableau students et mettre à jour la valeur de l'attribut sortDirection pour représenter le tableau courant La méthode de tri (ordre croissant ou décroissant). Notez que nous avons utilisé la méthode $forceUpdate() dans la méthode sortByScore pour forcer la mise à jour de l'instance Vue afin de mettre à jour dynamiquement les numéros de série dans la table. 🎜🎜En résumé, il n'est pas difficile d'afficher les numéros de série d'une table dans Vue. Nous pouvons utiliser les propriétés et méthodes calculées fournies par Vue pour y parvenir. Grâce aux exemples ci-dessus, je pense que vous maîtrisez la méthode d'implémentation des numéros de série de table dans Vue et, sur cette base, vous pouvez étendre davantage d'autres fonctions. 🎜

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!

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