Vue implementiert Buchverwaltungsfall

Vue implementiert Buchverwaltungsfall

In diesem Artikelbeispiel wird der spezifische Code von Vue zur Implementierung der Buchverwaltung zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt

Falleffekt

Fallideen

1. Bücherliste

  • Implementieren statischer Listeneffekte
  • Implementierung von Template-Effekten auf Basis von Daten
  • Behandeln Sie die Aktionsschaltflächen für jede Zeile

2. Bücher hinzufügen

  • Erkennen Sie die statische Wirkung der Form
  • Datenbindung für Buchformularfelder hinzufügen
  • Schaltflächenereignisbindung hinzufügen
  • Implementieren und Hinzufügen von Geschäftslogik

3. Ändern Sie das Buch

  • Ändern Sie die Informationen und füllen Sie sie in das Formular aus
  • Senden Sie das Formular nach der Änderung erneut
  • Wiederverwenden von Add- und Modify-Methoden

4. Bücher löschen

  • Methode zur Verarbeitung der Bindungszeit der Schaltfläche „Löschen“
  • Implementieren der Geschäftslogik zum Löschen

5. Allgemeine Anwendungsszenarien für Funktionen

  • Filter (Datum formatieren)
  • Benutzerdefinierte Anweisungen (Formularfokus erhalten)
  • Berechnete Eigenschaften (Zählen der Anzahl der Bücher)
  • Listener (überprüft die Existenz des Buches und der Nummer)
  • Lebenszyklus (Buchdatenverarbeitung)

Code

Grundstil

<style type="text/css">
    .Netz {
      Rand: automatisch;
      Breite: 550px;
      Textausrichtung: zentriert;
    }

    .grid Tabelle {
      Breite: 100 %;
      Rahmen-Zusammenbruch: Zusammenbruch;
    }

    .Raster th,
    td {
      Polsterung: 10;
      Rand: 1px gestrichelt orange;
      Höhe: 35px;
    }

    .grid th {
      Hintergrundfarbe: orange;
    }

    .Raster .Buch {
      Breite: 550px;
      Polsterung unten: 10px;
      Polsterung oben: 5px;
      Hintergrundfarbe: Rasengrün;
    }

    .Raster .Gesamt {
      Höhe: 30px;
      Zeilenhöhe: 30px;
      Hintergrundfarbe: Rasengrün;
      Rahmen oben: 1px durchgehend orange;
    }
</Stil>

Statisches Layout

<div id="app">
    <div Klasse='Raster'>
      <div>
        <h1>Buchverwaltung</h1>
        <div Klasse="Buch">
          <div>
            <Bezeichnung für='id'>
              Seriennummer:
            </Bezeichnung>
            <Eingabetyp="Text" id="id" v-Modell='id' :deaktiviert='Flag' v-Fokus>
            <label für="name">
              Name:
            </Bezeichnung>
            <Eingabetyp="Text" ID='Name' v-Modell='Name'>
            <button @click='handle' :disabled='submitFlag'>Senden</button>
          </div>
        </div>
      </div>
      <div Klasse='gesamt'>
        <span>Gesamtzahl der Bücher:</span><span>{{total}}</span>
      </div>
      <Tabelle>
        <Kopf>
          <tr>
            <th>Nummer</th>
            <th>Name</th>
            <th>Zeit</th>
            <th>Betrieb</th>
          </tr>
        </thead>
        <tbody>
          <tr :key="item.id" v-for="Artikel in Büchern">
            <td>{{item.id}}</td>
            <td>{{Artikelname}}</td>
            <td>{{item.date | format('yyyy-MM-dd hh:MM:ss')}}</td>
            <td><a href="" @click.prevent='toEdit(item.id)'>Bearbeiten</a>
              <span>|</span>
              <a href="" @click.prevent='deleteBook(item.id)'>Löschen</a>
            </td>
          </tr>

        </tbody>
      </Tabelle>
    </div>
</div>

Effektrealisierung

<script type="text/javascript" src="../js/vue.js"></script>
  <Skripttyp="text/javascript">
    Vue.direktive('Fokus', {
      eingefügt: Funktion (el) {
        el.fokus();
      }
    })
    Vue.filter('Format', Funktion (Wert, Argument) {
      Funktion Datumsformat (Datum, Format) {
        wenn (Typ des Datums === "Zeichenfolge") {
          var mts = date.match(/(\/Datum\((\d +)\)\/)/);
          wenn (mts && mts.Länge >= 3) {
            Datum = parseInt(mts[2]);
          }
        }
        Datum = neues Datum(Datum);
        if (!date || date.toUTCString() == "Ungültiges Datum") {
          zurückkehren "";
        }
        var Karte = {
          "M": date.getMonth() + 1, //Monat "d": date.getDate(), //Tag "h": date.getHours(), //Stunden "m": date.getMinutes(), //Minuten "s": date.getSeconds(), //Sekunden "q": Math.floor((date.getMonth() + 3) / 3), //Quartal "S": date.getMilliseconds() //Millisekunden };
        format = format.replace(/([yMdhmsqS])+/g, Funktion (alle, t) {
          var v = map[t];
          wenn (v != undefiniert) {
            wenn (alle.Länge > 1) {
              v = '0' + v;
              v = v.substr(v.Länge - 2);
            }
            zurückgeben v;
          } sonst wenn (t === 'y') {
            return (date.getFullYear() + '').substr(4 - alle.Länge);
          }
          alles zurückgeben;
        });
        Rückgabeformat;
      }
      gibt Datumsformat (Wert, Argument) zurück;
    })
    var vm = neuer Vue({
      el: '#app',
      Daten: {
        Flagge: falsch,
        submitFlag: false,
        Ausweis: '',
        Name: '',
        Bücher: []
      },
      Methoden: {
        Griff: Funktion () {
          wenn (diese.flagge) {
            // Der Bearbeitungsvorgang // besteht darin, die entsprechenden Daten im Array entsprechend der aktuellen ID this.books.some((item) => { zu aktualisieren.
              wenn (item.id == this.id) {
                Artikelname = dieser Name
                //Beenden Sie die Schleife nach Abschluss des Aktualisierungsvorgangs. return true;
              }
            })
            diese.flagge = falsch;
          } anders {
            // Ein Buch hinzufügen var book = {};
            Buch.ID = diese.ID;
            Buch.Name = dieser.Name;
            diese.daten = '';
            dies.bücher.push(Buch);
          }
          // Formular löschen this.id = '';
          dieser.name = '';
        }, toEdit: Funktion (ID) {
          //Änderung der ID deaktivieren
          dieses.flag = wahr;
          // Abfrage der zu bearbeitenden Daten basierend auf der ID var book = this.books.filter(function (item) {
            gibt item.id == id zurück;
          });
          console.log(Buch)
          //Senden Sie die erhaltene ID an das Formular this.id = book[0].id;
          dieser.name = buch[0].name;
        },
        deleteBook: Funktion (ID) {
          // Bücher löschen // Den Index des Elements aus dem Array anhand der ID suchen // var index = this.books.findIndex(function (item) {
          // Artikel-ID == ID zurückgeben;
          // });
          // Array-Elemente entsprechend dem Index löschen // this.books.splice(index, 1)
          // -----------------
          // Methode 2: Löschen per Filtermethode this.books = this.books.filter(function (item) {
            gibt item.id zurück != id;
          })
        }
      },
      berechnet: {
        gesamt: Funktion () {
          // Gesamtzahl der Bücher berechnen return this.books.length;
        }
      },
      betrachten:
        Name: Funktion (Wert) {
          // Überprüfen Sie, ob der Buchname bereits vorhanden ist. var flag = this.books.some(function (item) { return item.name == val; })
          wenn (Flagge) {
            // Buchname existiert this.submitFlag = true
          } anders {
            // Der Buchname existiert nicht this.submitFlag = false
          }
        }

      },
      montiert: Funktion () {
        // Wenn die Lifecycle-Hook-Funktion ausgelöst wird. Die Vorlage ist einsatzbereit // Wird im Allgemeinen verwendet, um Hintergrunddaten abzurufen und diese dann in die Vorlage einzufügen var data = [{
          ID: 1,
          Name: "Die Geschichte der Drei Reiche",
          Datum: 252597867777

        }, {
          ID: 2,
          Name: 'Wasserrand',
          Datum: 564634563453
        }, {
          ID: 3,
          Name: 'Traum der Roten Kammer',
          Datum: 345435345343
        }, {
          ID: 4,
          Name: 'Reise nach Westen',
          Datum: 345345346533
        }]
        this.books = Daten
      }
    });
</Skript>

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Vue implementiert Bibliotheksverwaltungssystem
  • Eine kleine Fallstudie zur Implementierung der Buchverwaltung durch Vue
  • Vue.js implementiert Buchverwaltungsfunktion
  • Erstellen Sie schnell eine Buchverwaltungsplattform basierend auf vue.js
  • Detaillierte Erläuterung der Vue-Bibliotheksverwaltungsdemo
  • Realisierung von Buchverwaltungsfunktionen auf Basis von Vue

<<:  CentOS7-Konfiguration Alibaba Cloud Yum-Quellmethodencode

>>:  Linux-Installation MySQL5.6.24 Nutzungsanweisungen

Artikel empfehlen

So konfigurieren Sie Http, Https, WS und WSS in Nginx

Vorne geschrieben Im heutigen Internetbereich ist...

MySQL erklärt das Prinzip und Beispiel zum Abrufen von Abfrageanweisungen

„explain“ wird verwendet, um Informationen zum Ab...

Schritte für Docker zum Erstellen eines privaten Lagerhafens

Hafen Harbor ist eine Open-Source-Lösung zum Erst...

Detaillierte Erklärung von :key in VUE v-for

Wenn der Schlüssel nicht zum v-for-Tag hinzugefüg...

Analyse langsamer Einfügefälle aufgrund großer Transaktionen in MySQL

【Frage】 Die INSERT-Anweisung ist eine der am häuf...

Detaillierte Erläuterung der MySQL 8.0-Wörterbuchtabellenerweiterung

Das Datenwörterbuch in MySQL ist eine der wichtig...

So ermitteln Sie die Ausführungszeit eines Befehls oder Prozesses in Linux

Auf Unix-ähnlichen Systemen wissen Sie möglicherw...

Detaillierte Einführung in die gespeicherten MySQL-Funktionen

Inhaltsverzeichnis 1. Erstellen Sie eine gespeich...

Fragen zum Vorstellungsgespräch zu JS 9 Promise

Inhaltsverzeichnis 1. Mehrere .catch 2. Mehrere ....