Heim  >  Artikel  >  Web-Frontend  >  Wie implementiert man eine zusammenklappbare Liste mit Vue?

Wie implementiert man eine zusammenklappbare Liste mit Vue?

王林
王林Original
2023-06-25 08:45:501559Durchsuche

Vue ist eine beliebte JavaScript-Bibliothek, die im Bereich der Webentwicklung weit verbreitet ist. In Vue können wir verschiedene Komponenten und interaktive Effekte problemlos implementieren. Unter diesen ist die zusammenklappbare Liste eine praktischere Komponente. Sie kann Listendaten gruppieren, um die Lesbarkeit der Datenanzeige zu verbessern. Gleichzeitig kann sie erweitert werden, wenn bestimmte Inhalte erweitert werden müssen, sodass Benutzer sie bequem anzeigen können Information. In diesem Artikel wird erläutert, wie Sie mit Vue eine zusammenklappbare Liste implementieren.

  1. Vorbereitung

Bevor wir Vue zum Implementieren einer zusammenklappbaren Liste verwenden, müssen wir die folgenden Arbeiten vorbereiten:

1.1 Vue-Umgebung: Installieren Sie Vue.js, das über den offiziellen Website-Download oder die CDN-Einführung eingeführt werden kann.

1.2 Datenvorbereitung: Bereiten Sie die anzuzeigenden Daten vor, bei denen es sich um ein Array oder ein Objekt handeln kann. Jedes Element enthält den Titel und den Inhalt der angezeigten Daten.

  1. HTML-Struktur

Unsere zusammenklappbare Liste besteht hauptsächlich aus zwei Teilen, einem ist der Titelteil, der die Liste anzeigt, und der andere ist der Teil, der den Inhalt der Liste anzeigt. Unter anderem muss der Titelteil das Klickereignis festlegen, um das Erweitern und Reduzieren des Inhaltsteils auszulösen. Daher können wir die v-for-Anweisung von Vue verwenden, um die Rendering-Liste zu durchlaufen und das Klickereignis wie folgt zu binden:

<template>
  <div>
    <ul>
      <li v-for="(item,index) in dataList" :key="index" @click="toggle(index)">
        {{ item.title }}
      </li>
    </ul>
    <div v-for="(item,index) in dataList" :key="index">
      <div v-show="item.show">{{ item.content }}</div>
    </div>
  </div>
</template>

In diesem Code verwenden wir ein Wrapper-Element, das eine ul und eine Reihe von divs enthält. Darunter werden mehrere Li im Titelteil in ul gerendert, und der Inhalt jedes Li ist item.title. Der jedem Li entsprechende erweiterte Inhalt wird durch die V-Show-Anweisung gesteuert. Wenn item.show wahr ist, wird der erweiterte Inhalt angezeigt.

  1. JavaScript-Logik

Als nächstes müssen wir eine JavaScript-Logik schreiben, um die Funktion der zusammenklappbaren Liste zu implementieren. Die spezifischen Schritte sind wie folgt:

3.1 Definieren Sie die Datenstruktur

Unsere Daten sollten zwei Teile umfassen, ein Teil ist der Titel der Liste, der andere Teil ist der der Liste entsprechende Inhalt. Daher können wir eine Datenstruktur wie folgt definieren:

data() {
  return {
    dataList: [
      {
        title: "列表标题1",
        content: "列表1的详细内容",
        show: false,
      },
      {
        title: "列表标题2",
        content: "列表2的详细内容",
        show: false,
      },
      {
        title: "列表标题3",
        content: "列表3的详细内容",
        show: false,
      },
    ],
  };
},

Unter anderem wird der Show-Parameter verwendet, um zu steuern, ob der erweiterte Teil angezeigt wird. Zunächst möchten wir, dass die erweiterten Teile geschlossen sind, also setzen wir den Wert „show“ auf „false“.

3.2 Klicken Sie, um den erweiterten Status zu wechseln

Wir müssen das Klickereignis an das li-Element im Titelteil binden, um den Klickeffekt zum Erweitern/Reduzieren zu erzielen. Wir können den erweiterten Status jeder Liste ändern, indem wir die Toggle-Methode aufrufen. Der spezifische Code lautet wie folgt:

methods: {
  toggle(index) {
    const item = this.dataList[index];
    item.show = !item.show;
  },
},

In der Toggle-Methode erhalten wir das aktuelle Listenelement und steuern die Anzeige und das Ausblenden des erweiterten Inhalts durch Ändern der Show-Parameter.

  1. Stileinstellungen

Zuletzt müssen wir die Liste so gestalten, dass sie schöner angezeigt wird.

li {
  background: #eee;
  padding: 10px;
  margin-bottom: 10px;
  cursor: pointer;
}

li:hover {
  background: #ccc;
}

div {
  padding: 10px;
}

In CSS formatieren wir jedes li-Element. Wir haben auch die Hintergrundfarbe beim Bewegen der Maus geändert. Auch der Stil des erweiterten Inhaltsbereichs wurde schlicht gehalten.

Zu diesem Zeitpunkt haben wir die Implementierung der zusammenklappbaren Liste abgeschlossen. Der vollständige Code lautet wie folgt:

<template>
  <div>
    <ul>
      <li v-for="(item,index) in dataList" :key="index" @click="toggle(index)">
        {{ item.title }}
      </li>
    </ul>
    <div v-for="(item,index) in dataList" :key="index">
      <div v-show="item.show">{{ item.content }}</div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      dataList: [
        {
          title: "列表标题1",
          content: "列表1的详细内容",
          show: false,
        },
        {
          title: "列表标题2",
          content: "列表2的详细内容",
          show: false,
        },
        {
          title: "列表标题3",
          content: "列表3的详细内容",
          show: false,
        },
      ],
    };
  },
  methods: {
    toggle(index) {
      const item = this.dataList[index];
      item.show = !item.show;
    },
  },
};
</script>

Das obige ist der detaillierte Inhalt vonWie implementiert man eine zusammenklappbare Liste mit Vue?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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