So passen Sie die Tabelle in Vue an

PHPz
Freigeben: 2023-04-13 10:28:31
Original
2573 Leute haben es durchsucht

Vue ist ein leichtgewichtiges Framework, das in der Webentwicklung weit verbreitet ist. In Vue können Entwickler verschiedene UI-Komponenten wie Tabellen, Listen usw. einfach anpassen. In diesem Artikel wird erläutert, wie Sie Vue zum Anpassen von Tabellen verwenden.

1. Die Grundidee der benutzerdefinierten Tabelle von Vue

Die Grundidee der benutzerdefinierten Tabelle von Vue besteht darin, die Komponentisierungsfunktion von Vue zu verwenden, um die Tabelle in separate Komponenten aufzuteilen und die Datenwiedergabe der Tabelle durch Daten zu realisieren Bindung und Ereignisverarbeitung sowie interaktive Funktionen.

2. Tabellenstrukturdesign

In Vue ist das Strukturdesign benutzerdefinierter Tabellen sehr flexibel. Eine übliche Methode ist die Verwendung der folgenden Struktur:

<template>
  <table>
    <thead>
      <tr>
        <th v-for="(header, index) in headers">{{ header }}</th>
      </tr>
    </thead>
    <tbody>
      <tr v-for="(item, index) in items" v-bind:key="index">
        <td v-for="(value, key) in item">{{ value }}</td>
      </tr>
    </tbody>
  </table>
</template>
Nach dem Login kopieren

In dieser Struktur besteht die Tabelle aus zwei Teilen: der Kopfzeile und dem Hauptteil. Der Header besteht aus dem Tag „thead“ und dem Tag „th“, und die Spaltennamen des Tabellenkopfes werden basierend auf den Schlüsselnamen in den Tabellendaten gerendert. Der Tabellenkörper besteht aus dem tbody-Tag und den tr- und td-Tags. Jede Zeile und Spalte in den Tabellendaten wird durch die v-for-Anweisung iteriert. Auf diese Weise können wir die oben genannten Grundvorlagen verwenden, um automatisch Tabellen zu generieren.

3. Die Idee, Tabellen mit Vue-Komponenten zu implementieren

Die Idee, Tabellen mit Vue-Komponenten zu implementieren, besteht darin, die Struktur und Daten der Tabelle in einer Komponente zu binden, um den Stil und die Interaktionslogik der Tabelle zu implementieren.

  1. Übertragung von Tabellendaten

In Vue können Sie das props-Attribut verwenden, um Tabellendaten an Unterkomponenten zu übergeben. Hier werden normalerweise Requisiten, Daten, berechnete und andere Attribute zum Festlegen von Daten verwendet.

<script>
  export default {
    name: 'Table',
    props: {
      headers: Array,
      items: Array
    },
    data() {
      return {
        sortedHeaders: []
      }
    },
    computed: {
      sortedItems() {
        return this.sortBy([...this.items], [...this.sortedHeaders])
      }
    },
  }
</script>
Nach dem Login kopieren

In diesem Codeausschnitt definieren wir eine Tabellenkomponente und übergeben die Header- und Elementeigenschaften der Tabelle an die untergeordnete Komponente. Anschließend wird in der Komponente ein Array „sortedHeaders“ definiert, um den Sortierstatus der Tabelle zu speichern, und in „computed“ wird die Sortierfunktion „sortedItems()“ definiert. Diese Funktion verwendet die Methode sortBy() zum Implementieren der Sortierung und gibt die sortierten Tabellendaten zurück.

  1. Tabellen-Rendering-Logik

Beim Komponenten-Rendering wird normalerweise das Template-Tag verwendet und v-bind, v-on und andere Anweisungen verwendet, um Daten und Ereignisse an die Komponente zu binden.

<template>
  <table>
    <thead>
      <tr>
        <th v-for="(header, index) in headers"
            v-bind:key="header"
            v-on:click="sortTable(header)">
          {{ header }} {{ getSortIcon(header) }}
        </th>
      </tr>
    </thead>
    <tbody>
      <tr v-for="(item, index) in sortedItems" v-bind:key="index">
        <td v-for="(value, key) in item">{{ value }}</td>
      </tr>
    </tbody>
  </table>
</template>
Nach dem Login kopieren

Hier verwenden wir die v-for-Anweisung, um jede Spalte der Tabelle zu rendern, und definieren eine sortTable()-Funktion, um die Sortierfunktion zu implementieren. Gleichzeitig verwenden wir auch die Funktion getSortIcon(), um das Symbol des Tabellensortierstatus anzuzeigen.

  1. Ereignisverarbeitung der Tabelle

Abschließend müssen wir die Ereignisverarbeitungslogik der Tabelle in der Vue-Komponente implementieren. Die v-on-Anweisung und die Ereignisverarbeitungsfunktion werden hier normalerweise verwendet, um die entsprechende Verarbeitung zu implementieren.

<script>
  export default {
    name: 'Table',
    props: {
      headers: Array,
      items: Array
    },
    data() {
      return {
        sortedHeaders: []
      }
    },
    computed: {
      sortedItems() {
        return this.sortBy([...this.items], [...this.sortedHeaders])
      }
    },
    methods: {
      sortTable(header) {
        if (this.sortedHeaders.includes(header)) {
          this.toggleSort(header)
        } else {
          this.sortedHeaders.push(header)
          this.doSort()
        }
      },
      toggleSort(header) {
        // 省略部分代码
      },
      doSort() {
        this.sortedItems.sort((a, b) => {
          // 省略部分代码
        })
      },
      getSortIcon(header) {
        // 省略部分代码
      },
    },
  }
</script>
Nach dem Login kopieren

Hier definieren wir vier Ereignisbehandlungsfunktionen, sortTable(), toggleSort(), doSort() und getSortIcon(), um die Sortier-, Umkehr- und Symbolanzeigefunktionen der Tabelle zu implementieren.

Zusammenfassend lässt sich sagen, dass der Prozess der Anpassung von Tabellen mit Vue sehr flexibel und hochgradig anpassbar ist. Durch die Komponentisierungsfunktion und die Implementierung der Daten- und Ereignisbindung können wir die Stile und Interaktionslogik verschiedener Tabellen schnell implementieren.

Das obige ist der detaillierte Inhalt vonSo passen Sie die Tabelle in Vue an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage